fix(amplify-category-geo): use amplify-prompts in place of inquirer for prompts

Description of changes

Use amplify-prompts for CLI prompts and remove inquirer dependency.
Issue #, if available

Description of how you validated changes
run unit and e2e tests locally
Checklist

[x] PR description included
[x] yarn test passes
[x] Tests are changed or added
[ ] Relevant documentation is changed or added (and PR referenced)

By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.

Codecov Report

Merging #8182 (85dc633) into amplify-geo-js-staging (e1fd02e) will not change coverage.
The diff coverage is n/a.

@@                   Coverage Diff                   @@
##           amplify-geo-js-staging    #8182   +/-   ##
=======================================================
  Coverage                   54.48%   54.48%
=======================================================
  Files                         664      664
  Lines                       37895    37895
  Branches                     7788     7788
=======================================================
  Hits                        20648    20648
  Misses                      16407    16407
  Partials                      840      840

Continue to review full report at Codecov.

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


【报错信息】No adapter available for new connection establishment

在esp-matter下的example/light工程下，使用chip-tool 进行WIFI设备的调试，但是提示No adapter available for new connection establishment

报错日志
root@kurisaw-virtual-machine:/home/kurisaw/Desktop/esp/esp-matter/connectedhomeip/connectedhomeip# out/debug/chip-tool pairing ble-wifi 0x7283 507 h1144919 20202021 3840
[1683373191.779599][126514:126514] CHIP:DL: ChipLinuxStorage::Init: Using KVS config file: /tmp/chip_kvs
[1683373191.832839][126514:126514] CHIP:DL: ChipLinuxStorage::Init: Using KVS config file: /tmp/chip_factory.ini
[1683373191.840524][126514:126514] CHIP:DL: ChipLinuxStorage::Init: Using KVS config file: /tmp/chip_config.ini
[1683373191.841617][126514:126514] CHIP:DL: ChipLinuxStorage::Init: Using KVS config file: /tmp/chip_counters.ini
[1683373191.874888][126514:126514] CHIP:DL: writing settings to file (/tmp/chip_counters.ini-OaEbjq)
[1683373191.875416][126514:126514] CHIP:DL: renamed tmp file to file (/tmp/chip_counters.ini)
[1683373191.875874][126514:126514] CHIP:DL: NVS set: chip-counters/reboot-count = 38 (0x26)
[1683373191.876415][126514:126514] CHIP:DL: Got Ethernet interface: ens33
[1683373191.876825][126514:126514] CHIP:DL: Found the primary Ethernet interface:ens33
[1683373191.877428][126514:126514] CHIP:DL: Failed to get WiFi interface
[1683373191.877498][126514:126514] CHIP:DL: Failed to reset WiFi statistic counts
[1683373191.878333][126514:126514] CHIP:IN: UDP::Init bind&listen port=0
[1683373191.878630][126514:126514] CHIP:IN: UDP::Init bound to port=54632
[1683373191.878675][126514:126514] CHIP:IN: UDP::Init bind&listen port=0
[1683373191.879647][126514:126514] CHIP:IN: UDP::Init bound to port=34175
[1683373191.879699][126514:126514] CHIP:IN: BLEBase::Init - setting/overriding transport
[1683373191.879742][126514:126514] CHIP:IN: TransportMgr initialized
[1683373191.880004][126514:126514] CHIP:FP: Initializing FabricTable from persistent storage
[1683373191.881647][126514:126514] CHIP:TS: Last Known Good Time: 2023-05-06T16:48:59
[1683373191.897961][126514:126514] CHIP:FP: Fabric index 0x1 was retrieved from storage. Compressed FabricId 0x73A1A947D4C599EA, FabricId 0x0000000000000001, NodeId 0x000000000001B669, VendorId 0xFFF1
[1683373191.903689][126514:126514] CHIP:ZCL: Using ZAP configuration...
[1683373191.905667][126514:126514] CHIP:CTL: System State Initialized...
[1683373191.905823][126514:126514] CHIP:CTL: Stopping commissioning discovery over DNS-SD
[1683373191.912822][126514:126514] CHIP:CTL: Setting attestation nonce to random value
[1683373191.912898][126514:126514] CHIP:CTL: Setting CSR nonce to random value
[1683373191.913018][126514:126514] CHIP:IN: UDP::Init bind&listen port=5550
[1683373191.913173][126514:126514] CHIP:IN: UDP::Init bound to port=5550
[1683373191.913217][126514:126514] CHIP:IN: UDP::Init bind&listen port=5550
[1683373191.913352][126514:126514] CHIP:IN: UDP::Init bound to port=5550
[1683373191.916007][126514:126514] CHIP:IN: TransportMgr initialized
[1683373191.916563][126514:126516] CHIP:DL: CHIP task running
[1683373191.916757][126514:126516] CHIP:DL: HandlePlatformSpecificBLEEvent 32784
[1683373191.921157][126514:126516] CHIP:CTL: Stopping commissioning discovery over DNS-SD
[1683373191.921239][126514:126516] CHIP:CTL: Setting attestation nonce to random value
[1683373191.921379][126514:126516] CHIP:CTL: Setting CSR nonce to random value
[1683373191.991787][126514:126516] CHIP:CTL: Generating NOC
[1683373192.014939][126514:126516] CHIP:FP: Validating NOC chain
[1683373192.015600][126514:126516] CHIP:FP: NOC chain validation successful
[1683373192.018056][126514:126516] CHIP:FP: Updated fabric at index: 0x1, Node ID: 0x000000000001B669
[1683373192.018146][126514:126516] CHIP:TS: Last Known Good Time: 2023-05-06T16:48:59
[1683373192.018190][126514:126516] CHIP:TS: New proposed Last Known Good Time: 2021-01-01T00:00:00
[1683373192.018233][126514:126516] CHIP:TS: Retaining current Last Known Good Time
[1683373192.020310][126514:126516] CHIP:FP: Metadata for Fabric 0x1 persisted to storage.
[1683373192.022005][126514:126516] CHIP:TS: Committing Last Known Good Time to storage: 2023-05-06T16:48:59
[1683373192.023637][126514:126516] CHIP:CTL: Joined the fabric at index 1. Fabric ID is 0x0000000000000001 (Compressed Fabric ID: 73A1A947D4C599EA)
[1683373192.023811][126514:126516] CHIP:IN: UDP::Init bind&listen port=5550
[1683373192.023965][126514:126516] CHIP:IN: UDP::Init bound to port=5550
[1683373192.024020][126514:126516] CHIP:IN: UDP::Init bind&listen port=5550
[1683373192.024708][126514:126516] CHIP:IN: UDP::Init bound to port=5550
[1683373192.024790][126514:126516] CHIP:IN: TransportMgr initialized
[1683373192.062145][126514:126516] CHIP:CTL: Setting wifi credentials from parameters
[1683373192.062257][126514:126516] CHIP:CTL: Setting attestation nonce to random value
[1683373192.062715][126514:126516] CHIP:CTL: Setting CSR nonce to random value
[1683373192.063067][126514:126516] CHIP:CTL: Commission called for node ID 0x0000000000007283
[1683373192.063378][126514:126516] CHIP:DL: Long dispatch time: 147 ms, for event type 2
[1683373192.095178][126514:126515] CHIP:DL: TRACE: Bus acquired for name C-ee32
[1683373192.138735][126514:126515] CHIP:DL: FAIL: NULL apEndpoint->mpAdapter in bluezObjectsSetup
[1683373192.140087][126514:126516] CHIP:DL: PlatformBlueZInit init success
[1683373192.142852][126514:126516] CHIP:DIS: Closing all BLE connections
[1683373192.144771][126514:126516] CHIP:BLE: No adapter available for new connection establishment
[1683373311.917147][126514:126514] CHIP:CTL: Shutting down the commissioner
[1683373311.917245][126514:126514] CHIP:CTL: Stopping commissioning discovery over DNS-SD
[1683373311.917354][126514:126514] CHIP:CTL: Shutting down the controller
[1683373311.917398][126514:126514] CHIP:IN: Expiring all sessions for fabric 0x1!!
[1683373311.917441][126514:126514] CHIP:FP: Forgetting fabric 0x1
[1683373311.917488][126514:126514] CHIP:TS: Pending Last Known Good Time: 2023-05-06T16:48:59
[1683373311.917616][126514:126514] CHIP:TS: Previous Last Known Good Time: 2023-05-06T16:48:59
[1683373311.917661][126514:126514] CHIP:TS: Reverted Last Known Good Time to previous value
[1683373311.917727][126514:126514] CHIP:CTL: Shutting down the commissioner
[1683373311.917889][126514:126514] CHIP:CTL: Stopping commissioning discovery over DNS-SD
[1683373311.917987][126514:126514] CHIP:CTL: Shutting down the controller
[1683373311.918029][126514:126514] CHIP:CTL: Shutting down the System State, this will teardown the CHIP Stack
[1683373311.918230][126514:126514] CHIP:DMG: All ReadHandler-s are clean, clear GlobalDirtySet
[1683373311.918346][126514:126514] CHIP:BLE: BleConnectionDelegate::CancelConnection is not implemented.
[1683373311.918392][126514:126514] CHIP:FP: Shutting down FabricTable
[1683373311.918437][126514:126514] CHIP:TS: Pending Last Known Good Time: 2023-05-06T16:48:59
[1683373311.918498][126514:126514] CHIP:TS: Previous Last Known Good Time: 2023-05-06T16:48:59
[1683373311.918561][126514:126514] CHIP:TS: Reverted Last Known Good Time to previous value
[1683373311.918768][126514:126514] CHIP:DL: writing settings to file (/tmp/chip_counters.ini-cpvgZC)
[1683373311.919190][126514:126514] CHIP:DL: renamed tmp file to file (/tmp/chip_counters.ini)
[1683373311.919415][126514:126514] CHIP:DL: NVS set: chip-counters/total-operational-hours = 0 (0x0)
[1683373311.919459][126514:126514] CHIP:DL: Inet Layer shutdown
[1683373311.919501][126514:126514] CHIP:DL: BLE shutdown

(process:126514): GLib-GObject-CRITICAL **: 19:41:51.919: g_object_unref: assertion 'G_IS_OBJECT (object)' failed
[1683373311.919939][126514:126514] CHIP:DL: System Layer shutdown
[1683373311.920263][126514:126514] CHIP:TOO: Run command failure: ../../examples/chip-tool/commands/common/CHIPCommand.cpp:524: CHIP Error 0x00000032: Timeout

解决方案及分析
参考此issue:

https://github.com/espressif/esp-matter/issues/75

出现这个问题是说明没有多余的蓝牙适配器为chip-tool提供服务，这里我使用的虚拟机设备，一般来说，在虚拟机的USB设备中打开与主机共享蓝牙设备，然后使用主机的蓝牙来为chip-tool提供服务能够解决问题。
我们先查看下蓝牙状态：
sudo systemctl status bluetooth

如果未运行，请执行：
sudo systemctl enable bluetooth
sudo systemctl start bluetooth


A better self-API

Here's what I have in mind
consumeLinter: (linterRegistryHelper) ->
  linterAgent = linterRegistryHelper.registerLinter({
    name: 'some-linter',
    scope: 'project' # or file
  })
  # if scope is file
  linterAgent.setMessages(filePath, [...messages...])
  linterAgent.deleteMessages(filePath)
  #  else
  linterAgent.setMessages([...messages...])
  linterAgent.deleteMessages()

  @subscriptions.add(linterAgent) # or
  linterAgent.dispose() # automatically deletes everything of this agent

^ It should make a lot of things simpler. We have been told that our self-API isn't as beautiful so now that we're done with high priority things, I think this is the best time to work on it
cc @radicaled @devoncarew @david-driscoll @russpowers
^ authors of packages using self-API. I did a quick github code search if I've missed somebody, please ping them on here

And I just started using this for atom-build...
This does look better though.
On Thu, Oct 22, 2015, 5:10 PM Steel Brain<EMAIL_ADDRESS>wrote:

Here's what I have in mind
consumeLinter: (linterRegistryHelper) ->
linterAgent = linterRegistryHelper.registerLinter({
name: 'some-linter',
scope: 'project' # or file
})
linterAgent.setMessages([...messages...])
-- or --
linterAgent.deleteMessages() # Deletes all messages by this agent
linterAgent.deleteMessages(filePath) # Deletes all messages by this agent on that filePath
^ It should make a lot of things simpler. We have been told that our
self-API isn't as beautiful so now that we're done with high priority
things, I think this is the best time to work on it
cc @radicaled https://github.com/radicaled @devoncarew
https://github.com/devoncarew @david-driscoll
https://github.com/david-driscoll @russpowers
https://github.com/russpowers
^ authors of packages using self-API. I did a quick github code search if
I've missed somebody, please ping them on here
—
Reply to this email directly or view it on GitHub
https://github.com/atom-community/linter/issues/964.

What about methods to find all messages for packages like minimap-linter?

@kepler0 those methods are gonna stay as-is. Those methods are pretty fine, it's just that I was told recently that linter doesn't support PUSH mechanism and only supports PULL mechanism to which I replied with self-API and they said it wasn't documented anywhere and they were right.
Packages using self-API for non-provider purposes have too broad coverage, we can not wrap all of that, but we can polish our provider self-api because that's what this package is for.

Awesome. Just making sure that these won't be the only methods exposed.

So, my drive-by comment -
We've been able to build what we need to on the current self API. This iteration looks good; happy to consume that as well :) We would appreciate a period of overlap - where we could move to the new API, but the current would would continue to be available.

@devoncarew Absolutely, even when we roll that API out, the current packages will continue working 100%

I'll start working on this now.

HYPE!

Added in #986


Seq.reduce.map.reduce executes out of order

In the following:
const s = [1, 2, 3];
Immutable.Seq(s).reverse().map(e => (console.log(e), e * 2)).reverse().toArray();

I expected the log to output 3, 2, 1 and the result of the call to be [2, 4, 6]. The result is correct, but the two reverses apparently cancel each other out.
I realize such are the perils of side-effects, but did not see any warnings about Seq expecting commutative transformations.
Note: I realize in this case I can just swap the second reverse and the toArray to get the desired ordering, but I still think this is a bug

This is actually a feature! Seq is a lazy collection and does not produce intermediate representations. Because of this, the order in which data is read results in the order in which the prior functions are called. Since the Sequence was reversed twice before being consumed, it is consumed in it's original order.

If it's important that intermediate transforms like map() are called in a particular order, you'll need to ensure you convert the lazy Seq back into a real data structure (like an array) before calling it.

Well, it's not immediately apparent (to me at least) that this is due to laziness; though I guess that depends on your definition of "intermediate representation". To me I thought the chained calls were doing something like the following:
Immutable.Seq -> Sequence based on array s
.reverse() -> Sequence based on array s; iterating from the back
.map() -> Sequence based on array s; iterating from back; applying lambda
.reverse() -> Sequence based on array s; iterating from back; applying lambda; reversing
.toArray -> make it happen

In other words, I thought Seq as a sort thunk aggregator.

Intermediate representations in this context refers to an actual data structure which holds the results of the previous operation. For example, if you use Array instead of Seq and call the same sequence of operations, you'll produce new intermediate representation Array data structures after each operation which will culminate in a final data structure. With Seq there are no intermediate representations, and what you say is correct that Seq is essentially planning a sequence of operations which is only executes lazily when necessary.
For example, consider this similar example which uses reverse() and map() but rather than calling toArray(), just accesses a single value with get(2):
const s = ['A', 'B', 'C'];
const result = Immutable.Seq(s)
  .reverse()
  .map(ch => (console.log(ch), ch.toLowerCase()))
  .reverse()
  .get(2);
// console.log: 'C'
// result: 'c'

Because Seq is lazy, the map() operation only applies to the one value requested, so console.log is only called once. Similar code with eager Array will console.log all three values.
This might illuminate what's happening when we "reify" the lazy sequence into a real data structure. toArray() is essentially calling get(0), get(1),  ... get(seq.length - 1) to produce all the items in the returned Array data structure, each access triggering only the transformation operations necessary to produce that specific value, and in aggregate triggering all those necessary to produce and return the Array.

I understand the principle, but I guess I had assumed Seq would materialize intermediate views to respect the order of chained methods. I think the current behavior is non-intuitive and should perhaps throw when it hits this problem (as a point of comparison, in Python reversed requires a materialized sequence and will throw if given an iterator)
At any rate, the behavior of reverse is inconsistent with that of sort, as the following example shows:
Immutable.Seq.of([2, 'a'], [3, 'b'], [2, 'c'], [3, 'd'], [1, 'd'])
  .map((x, i) => (console.log('first:', x.join(',')), x.concat(i)))
  // Sort by first element; break ties by moving later element first
  .sort(([a1, _, a2], [b1, __, b2]) => (a1 - b1) || -(a2 - b2))
  .map(cs => (console.log('second:', cs.slice(0, 2).join(',')), cs.slice(0, 2)).join(','))
  .toArray();

/*
first: 2,a
first: 3,b
first: 2,c
first: 3,d
first: 1,d
second: 1,d
second: 2,c
second: 2,a
second: 3,d
second: 3,b
*/
// Returns: [ "1,d", "2,c", "2,a", "3,d", "3,b" ]


Bug: kobold_ai_tasks do not work

Calling
[_this, 4000] call KBAITSK_fnc_taskRush;
on an AI squad synced to headless failed to work. They just stood around.

I assume AI squad synced to PZAI headless? Does this work on the old framework?

Yes, there are numerous examples in the mission library.
AI squads synced to PZAI headless and the task is usually called on a waypoint activation.
[{[_this,1500] call kobld_ai_tasks_fnc_taskRush;},(group this),5] call CBA_fnc_waitAndExecute;

Should now be fixed here: https://github.com/Global-Conflicts-ArmA/Olsen-Framework-Arma-3/pull/91/commits/fee79af7043073c751fca40af6b9884c6355e4e1
Please reopen if not.


Having trouble implementing custom methods on a model

Given my API requires /session/create and /session/destroy for session management. How do i create my session model in Restangular? My approach isn't working. I'm getting undefined function errors for create and destroy
angular
    .module( "app.session" )
    .service( "Session", (Restangular) ->

      Session = Restangular.service("session")

      Restangular.extendModel( "session", (model) ->
          model.create = (credentials) ->
            model.customPOST("create", credentials)
          model.destroy = ->
            model.customDELETE("destroy")
          return model
      )

      return
  )

ugh...i'm an idiot. i wasn't returning the model...
angular
    .module( "app.session" )
    .service( "Session", (Restangular) ->

      Session = Restangular.service("session")

      Restangular.extendModel( "session", (model) ->
          model.create = (credentials) ->
            model.customPOST("create", credentials)
          model.destroy = ->
            model.customDELETE("destroy")
          return model
      )

      return Session
  )


Update procurement details form

work in progress
Changes in this PR
Screenshots of UI changes

Before
After
Next steps

 Update procurement details form


CQRS Question about bulk import

Hallo @adrai ,
sorry for this not being a completely specific question about node-cqrs-domain, but in some parts a broader question about CQRS design...I think you are very experienced with CQRS and I have a question about how to model something in CQRS that I have been thinking the whole day, but have not come to a conclusion yet.
My problem is this:
The user should have the possibility to import a CSV that contains "shipping numbers". To prevent duplicate imports, he must not be allowed to import a shipping twice. Later on, the shippings that are imported will be enhanced with tracking data from the carrier.
Problem 1: my first naive attempt was to have one aggregate for one shipping. That is, if the CSV contains 1000 shippings, then 1000 "importShipping"-commands would be issued. But then, how can I prevent duplicate shipping numbers? Would you place this into a pre-condition? If so, would the pre-condition query the events-collection or would it query the aggregates-collection?
Problem 2: another approach would be to have one aggregate that models the list of shippings that have been imported. So it is really easy in JavaScript code to check this - simply look in the list of existing shippings of the aggregate if there is one with the new shipping number and reject it. Big problem here: we use MongoDB and we will have customers with lots of shippings, so that the 16MB limit of MongoDB per document would be exceeded. From the documentation I didn't see the possibility to "split" an aggregate to multiple documents, right? This would also have concurrency issues, right?
Another approach I was thinking of was to allow multiple aggregates with the same shipping number and do the de-duplication in the read-model. Would that be a viable approach in your oppinion?
Many thanks in advance,
Steven

Hi Steven,
all of this approaches can "work".
About the solution proposal of having only 1 aggregate:
You could have 1 import command (containing all shippings) and then generate various shipping events. The mongodb will then store only the single events and the aggregate business rules will only need to verify everything in memory (no complete shipping list is persisted).
To optimize loading of passed shipping events from the eventstore you can make use of the snapshot mechanism (by saving a list of shipping numbers only), that would speed up the loading when handling a new import command.
About the solution proposal of solving this outside of the domain (the read model):
If your system can live with a minimum possibility of duplication (by concurrency) risk, you can solve this outside of the domain.
In case you want to make sure also this risk will be eliminated, you can create a saga, that will check after the domain has processed the import, if there are any duplicates and fix it by sending fixing commands.
And finally always remember: "You don't have to solve everything with CQRS." ;-)
I hope this helps a bit,
Adriano

Hi,
you have some misconception about how ES works, I suggest that you dive a little bit deeper into the theory of Event Sourcing, there is plenty of information readily available over the web presented in many different ways.
A few things to note:

There is no collection of aggregates, each aggregate has it's own event stream and this stream is applied every time when a new command arrives to build the current state state of the aggregate.

The state of the aggregate is modeled inside the event-handlers, there you can do aggregate.set and affect the state. Again, those handlers are applied in their respective order each time a new command arrives in order to build the current state of the aggregate.

Pre-conditions do not query anything ( in fact - no queries are done on the write side, ie. domain), per-conditions are executed after the state has been rebuild and in them you can perform some checks against the state of the aggregate ( having the command and state data), and respectively reject the command if some condition is not satisfied.

Each event is stored in a separate record ( in MongoDB case separate document for each event ), which consist of  stream id ( aggregate id ), some generic event-store data plus the specific events data ( payload, metadata etc. ) and only that ( no state information whatsoever ). This means that MongoDB ( or any other DB ) document size limitations do not apply on the aggregate, but rather would only on the event level ( very unlikely to present a problem, and if it is a sign of bad design ).

With that being said, to answer your specific question, as i get it it has nothing to do with "bulk import", as you are the same logic applies to each individual shipping - no matter if it comes trough bulk or single operation. Weather you should model your domain with a shippings ( many ) or shipping ( one ) aggregate is hard to say, depends on what business logic you will perform with those afterwords, in both scenarios you can denormalize those into separate readmodels so that shouldn't be a consideration.

If you choose to go with the shipping ( one aggregate per shipping ) way - you can control the uniqueness of the shipping with their ids.  Combining the defineCommandAwareAggregateIdGenerator aggregate option and the exsiting: true command option you could prevent a shipping being created twice.

If you choose to go with the shippings ( one aggregate for all shippings ) way - that you should maintain a list of all shippings ids, and check against this list inside a per-condition. Bear in mind, that if you have a huge amount of shippings you may encounter some memroy limitations here because, as said, state is rebuild in-memory.

I personally wouldn't choose the one-aggregate-for-all approach, as you would probably need to maintain some other state for each shipping ( position, status, delivered - for example ) and with such approach this would be much more complicated and less performant, before mentioning scaling and distribution limitation.

@adrai : we were responding concurrently, apparently it took me more than 10min to write my response. :)
Another approach that could work, using an aggregate per shipment would be to do this check inside the a business rule, as this can be asynchronous you can maintain an external collection with all shipping numbers and validate weather one is already present using mnogo atomic operators ( update, upsert ) and then in case it was there reject the command with a BussinessRuleError, you should be careful the check those only for create/import command.
This way you don't have to tie your shipping ( aggregate ) ID to the shipping number. One thing to take into consideration is that, in theory, there is no way to ensure that the first shipment of two with the same number will be accepted and the second refused, it could go the other way around.
If there is a need to reject the whole import in case any of the shipments fails, than this should be handled with a saga, if this is not the case an import could simply consist of a service who is firing a create/import command per each shipment, load-balancing can be handled either on the message-bus level or on the sending side.

@adrai / @nanov  Thanks a lot you for your thorough explanations! I will try the follow approach now: add an additional collection with the shipping number as a unique key. There will be one import command for each shipping, and in the business rule I will add the shipping number to this collection. If there is already one, the business rule will fail because of the duplicated key.
That will save me from the problem that the shipping numbers list can get too large, so that the aggregate document in the snapshots-collection couldn't be saved because of the 16MB limit. Plus, I don't need to fetch the whole list from the DB server to evaluate if the shipping number is allowed.

sounds good


Refactor fileService.ts

Refactored resolveChildren() use TPromise instead of callback.

@katainaka0503,
Thanks for having already signed the Contribution License Agreement. Your agreement was validated by Microsoft. We will now review your pull request.
Thanks,
Microsoft Pull Request Bot

After refactoring in first commit in this PR, flow.sequence() seems to be used nowhere.
So, I removed the method and it's tests.

I have mixed feelings of replacing everything with promises, especially around code that is performance critical. For example now we seem to create a Promise for each file of a directory to resolve it which is garbage after done. The reason I do not mind the callback hell in the file service is that I really want to let it run fast and with as little objects as possible. The same is true for example in fulltext search where potentially lots of files get crunched.

I see. I haven't considered performance.
I was take introducing Promise on blind face. And now rethinking about performance,I think this PR should be closed.

@katainaka0503 no worries, thanks.


[AST] Simplify InterpolatedStringLiteralExpr

Noticed this while implementing similar logic for regex literal emission.
Rather than gathering additional information in CSApply for custom SILGen emission, build an UnresolvedMemberExpr up-front as the initialization expr for the TapExpr. This can then be type-checked and emitted using the more general SILGen code paths.

@swift-ci please test

@swift-ci please test source compatibility

@swift-ci please SourceKit stress test

Build failed
Swift Test Linux Platform
Git Sha - ca826d162dc5981905aa430ed9e139a90674fd3d

@swift-ci please test Linux

Build failed
Swift Test OS X Platform
Git Sha - ca826d162dc5981905aa430ed9e139a90674fd3d

@swift-ci please test

One thing I should note about this change is that we're no longer directly selecting the witness for the builder's initializer, we're going through name lookup instead. I can't immediately think of cases where this would cause issues though, and it would seem pretty odd for a StringInterpolationProtocol conformer to implement an additional init(literalCapacity:interpolationCount:) overload that would never be called.
Nonetheless it may be possible to implement custom constraint generation logic for the builder init that uses a ValueWitness constraint to match the old behavior if it's felt this may be an issue.

Going to hold off merging until @beccadax has had a chance to look over it

I'm a bit iffy on this change—it was written this way to ensure that we'd use the protocol witness even in the presence of overloads and to give the constraint solver a little less to do. On the other hand, we'd want appendLiteral(_:) to use the witness too, but there we just typecheck it like we do here.

@beccadax Personally I don't feel too strongly about whether we choose to select the exact witness or perform a normal lookup, I'm leaning slightly towards the latter as it simplifies things quite a bit and it could be argued that it's more in-line with the semantics of the generated code specified in SE-0228. But it seems unlikely that users would conform to StringInterpolationProtocol in a way to notice the difference, so I'm not too fussed. I do agree it would nice if we were consistent with appendLiteral though.
If we do want to retain the exact-witness behavior, I think it would be best done in the constraint system with a ValueWitness constraint, where the type-checked call is built in CSApply with constraint system info. This would have the benefits of:

Not duplicating the TapExpr SILGen logic
Not having to manually write the SILGen apply emission
Not having failure paths in CSApply
Simplifying the AST structure

My main issue with producing the type-checked IntegerLiteralExpr arguments and having SILGen emit them in a call is that it wouldn't automatically handle future potential language enhancements such as allowing witnesses to have default arguments, or contravariant input types. Granted, neither are likely to crop up with StringInterpolationProtocol, but IMO it would be nice if the compiler just handled them.

My intention was definitely that SE-0228 would use the witnesses for both formal requirements of StringInterpolationProtocol. But a value witness constraint sounds perfect—those didn't exist in 2018!


Do you support solana-cli v1.18.8 and anchor v0.30.0?

Do you support solana-cli v1.18.8 and anchor v0.30.0?
I want to integrate your action to my repo but it failed when checking.
You can see more details here: https://github.com/Confucian-e/solana-program-practice/actions/runs/8842426059/job/24281051927?pr=3

I think error happened here:
https://github.com/Confucian-e/solana-program-practice/actions/runs/8842426059/job/24281051927?pr=3#step:3:52

My mistake. Thank you for your action!


[Question]: JWT provider

Is it mandatory to use APIGee as JWT token provider or can we use other services like Okta, Auth0 as well?

Other JWT providers may be used, but the adapter expects a few fields to be present. Here's an example JWT as generated by Apigee:
{
	"access_token": "YHFlv9IfBDkqwEF8yofxhCGU7ed",
	"api_product_list": [
		"hello"
	],
	"application_name": "hello",
	"aud": "istio",
	"client_id": "BB8hRvqJICSDFHaeof6fvo4qXzW1f8N",
	"developer_email"<EMAIL_ADDRESS>	"exp":<PHONE_NUMBER>,
	"iat":<PHONE_NUMBER>,
	"iss": "https://myorg-test.apigee.net/istio-auth/token",
	"jti": "3fb8dc5f-ba73-4cc3-95b1-6bad18e43e33",
	"nbf":<PHONE_NUMBER>
}

Note these Apigee fields:

api_product_list
client_id
application_name
access_token
developer_email

The first three are required for authentication, while the remaining are just passed to analytics.


ctrl+del at end of line removes text to the left of the cursor

The expectation I have is that it deletes the new line and any leading whitespace characters of the next line. I don't recall seeing this in previous milestones, so it seems like a new issue.

Perhaps this is related to changes from #832?

Just found #3882 which has already been triaged. Closing the issue.


[main] Upgrade to latest dependencies

Cron -knative-prow-robot
/cc knative/security-guard-approvers
/assign knative/security-guard-approvers
Produced by: knative-sandbox/knobots/actions/update-deps
Details:
bumping knative.dev/pkg df29e2a...d1d5c84:
  > d1d5c84 Define a global for `reconciler.DefaultTimeout`. (# 2597)
bumping knative.dev/serving dadd0b6...2befffb:
  > 2befffb Update net-istio nightly (# 13328)
  > 2332731 upgrade to latest dependencies (# 13326)
  > 3f03f22 upgrade to latest dependencies (# 13324)
bumping knative.dev/control-protocol 64e2528...fce406f:
  > fce406f upgrade to latest dependencies (# 214)

/lgtm
/approve


Issues with brew upgrade "$FORMULA"

brew config output
HOMEBREW_VERSION: 3.2.11-97-g9392daa
ORIGIN: https://github.com/Homebrew/brew
HEAD: 9392daa7a635fb4ae463851a1d75bcfc8985334c
Last commit: 2 hours ago
Core tap ORIGIN: https://github.com/Homebrew/homebrew-core
Core tap HEAD: 71edb1e226683df27412b8ddd5f9b59a056f2c92
Core tap last commit: 61 minutes ago
Core tap branch: master
HOMEBREW_PREFIX: /usr/local
HOMEBREW_CASK_OPTS: []
HOMEBREW_DISPLAY: /private/tmp/com.apple.launchd.WG8GqoF0L6/org.xquartz:0
HOMEBREW_EDITOR: nano
HOMEBREW_GITHUB_API_TOKEN: set
HOMEBREW_MAKE_JOBS: 16
Homebrew Ruby: 2.6.3 => /System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/bin/ruby
CPU: 16-core 64-bit kabylake
Clang: 12.0.5 build 1205
Git: 2.33.0 => /usr/local/bin/git
Curl: 7.64.1 => /usr/bin/curl
macOS: 11.5.2-x86_64
CLT: <IP_ADDRESS>.9
Xcode: N/A

brew doctor output
Your system is ready to brew.

[X] I ran brew update and am still able to reproduce my issue.
[X] I have resolved all warnings from brew doctor and that did not fix my problem.

What were you trying to do (and why)?
I am using this command in my update script for years now, usually without problems.
builtin printf "$USER_PASSWORD\n" | brew upgrade "$FORMULA"
What happened (include all command output)?
I don`t know when exactly this started but now it shows the password in clear text output instead of using it.
builtin printf "$USER_PASSWORD\n" | brew upgrade mas
==> Upgrading 1 outdated package:
mas 1.8.2 -> 1.8.3
==> Downloading https://ghcr.io/v2/homebrew/core/mas/manifests/1.8.3
Already downloaded: /Users/tom/Library/Caches/Homebrew/downloads/cd1983b86fc0cff751b848d7eeac1798fc7ac74ba094d95ae3c918b0a1967acb--mas-1.8.3.bottle_manifest.json
==> Downloading https://ghcr.io/v2/homebrew/core/mas/blobs/sha256:0116c8f800780c
Already downloaded: /Users/tom/Library/Caches/Homebrew/downloads/da32fc00048f405b44c07cc4d16963f1713d2f37b84e5a9a2b272f675d158bfc--mas--1.8.3.big_sur.bottle.tar.gz
==> Upgrading mas
  1.8.2 -> 1.8.3

==> Pouring mas--1.8.3.big_sur.bottle.tar.gz
**_USER_PASSWORD_IN_CLEAR_TEXT_**
🍺  /usr/local/Cellar/mas/1.8.3: 7 files, 1.2MB
Removing: /usr/local/Cellar/mas/1.8.2... (7 files, 770KB)

When using another brew update command for a list of formulae it lists all out-of-date-formulae and updates only the first one. I double checked the uses variable for the "$FORMULA", it only contains one.
while IFS= read -r line || [[ -n "$line" ]]
do
     if [[ "$line" == "" ]]; then continue; fi
     FORMULA="$line"
     brew upgrade "$FORMULA"
done <<< "$(cat "$TMP_DIR_FORMULAE"/"$DATE_LIST_FILE_FORMULAE")"

==> Upgrading 1 outdated package:
mas 1.8.2 -> 1.8.3
==> Downloading https://ghcr.io/v2/homebrew/core/mas/manifests/1.8.3
Already downloaded: /Users/tom/Library/Caches/Homebrew/downloads/cd1983b86fc0cff751b848d7eeac1798fc7ac74ba094d95ae3c918b0a1967acb--mas-1.8.3.bottle_manifest.json
==> Downloading https://ghcr.io/v2/homebrew/core/mas/blobs/sha256:0116c8f800780c
Already downloaded: /Users/tom/Library/Caches/Homebrew/downloads/da32fc00048f405b44c07cc4d16963f1713d2f37b84e5a9a2b272f675d158bfc--mas--1.8.3.big_sur.bottle.tar.gz
==> Upgrading mas
  1.8.2 -> 1.8.3

==> Pouring mas--1.8.3.big_sur.bottle.tar.gz
pv
rename
ghostscript
🍺  /usr/local/Cellar/mas/1.8.3: 7 files, 1.2MB
Removing: /usr/local/Cellar/mas/1.8.2... (7 files, 770KB)

It seems there is something wrong with the brew update command.
Thanks for fixing in advance.
What did you expect to happen?
update the formulas correctly
Step-by-step reproduction instructions (by running brew commands)
see above

I am using this command in my update script for years now, usually without problems.
builtin printf "$USER_PASSWORD\n" | brew upgrade "$FORMULA"

I'm not sure why you need to even do this. brew doesn't invoke sudo, unless you are talking about casks too?

When using another brew update command for a list of formulae it lists all out-of-date-formulae and updates only the first one. I double checked the uses variable for the "$FORMULA", it only contains one.
while IFS= read -r line || [[ -n "$line" ]]
do
     if [[ "$line" == "" ]]; then continue; fi
     FORMULA="$line"
     brew upgrade "$FORMULA"
done <<< "$(cat "$TMP_DIR_FORMULAE"/"$DATE_LIST_FILE_FORMULAE")"

This is probably a case of cat output actually ending up being fed in as stdin to brew upgrade due to quirks with how bash works. You can see that in action by making the last line xargs -0 printf "%s".

The reason this is all probably happening because we spawn a pseudo terminal (pty) when installing formulae as a security measure. This terminal will in turn connect to stdin and probably has its own quirky behaviour somewhere built deep into somewhere. Not sure if we can control this or not - I can poke around a bit.

Hey,
@Bo98 thanks for looking into it.
I tried different solutions for waiting for the respective processes to finish before starting the next entry from the file.
The only solution I could come up with is using parallel und only one process at a time. Then use script to keep the output colored.
update_formula() {
    FORMULA="$1"
    echo "$FORMULA"
    script -q /dev/null brew upgrade "$FORMULA"
}

env_parallel --will-cite -j"1" --line-buffer -k "update_formula {}" ::: "$(cat PATH_TO_FILE_WITH_OUTDATED_FORMULAE.txt)"

This works so far. But I think there is no workaround for
builtin printf "$USER_PASSWORD\n" | brew upgrade "$FORMULA"
I hope the issue can be fixed in brew. Until then I try the workaround with parallel.
Are there any fomulae that need a password or only casks?
Thanks

Are there any fomulae that need a password or only casks?

At least in terms of our own taps: only casks.

This doesn't seem to happen on Linux - only macOS.
This is not easy to fix in plain Ruby. There are three possible fixes I see:

Use a native-built gem to tweak terminal flags.

This is tricky to vendor (and a similar attempt to make a native gem install on the fly didn't go very well with Bootsnap).

Use fiddle to tweak terminal flags.

It adds like 40 lines of code, but seems to work from the proof of concept I tried out now.

Go with a compromise of disconnecting stdin entirely unless --debug or --interactive is passed.

This makes a very strong assumption that there is absolutely no third-party formulae out there that does user input stuff in post_install. All I can guarantee is nothing in our taps (homebrew-core) does this.

Go with a compromise of disconnecting stdin entirely unless --debug or --interactive is passed.

This makes a very strong assumption that there is absolutely no third-party formulae out there that does user input stuff in post_install. All I can guarantee is nothing in our taps (homebrew-core) does this.

I think this would be a reasonable assumption, for what it's worth.

Thanks again for looking into this.
I am not a developer and I don`t know ruby at all so I can not give a valid feedback here.
If the solution involving fiddle solves this for all cases this sounds best for me but as I said this is only from reading the suggestions without knowing the downsides.
Thanks

I'll open a PR for this at the weekend.

@Bo98 Thank you


Open calendar on focus

Not sure how the plugin decides to show or hide the date & time picker at the moment, but it is very difficult to debug or change the styles because whenever the DOM inspector is opened and any element is clicked, the datepicker gets removed. (and funny enough, changing tabs and coming back opens it again in Chrome...)
It seems is is not being fired on focus, as when setting the input to focus on the developers tools nothing happens.
Ideally it should be fired on focus as far as I see it. Is there any reason why this approach was avoided?
The only way I found to debug the CSS styles and the DOM structure of the plugin was to use breakpoints. Far from ideal.

whenever the DOM inspector is opened and any element is clicked, the datepicker gets removed.

I might as well point out that there's a debug setting that can be enabled. It disables this, and makes it considerably easier to debug.

Right, I see it:

Right. I see it:

debug
For the moment this function will only prevent the picker from calling hide() on blur so that the picker can be inspected.

I guess this would be the way to use it ?
$('#datetimepicker6').data("DateTimePicker").debug()

I guess this would be the way to use it ?

I typically use it as the option form, where it's passed into the constructor.
$('#datetimepicker1').datetimepicker({
  debug: true
});

But it does appear that there is a debug() method, so the following would work as well
$('#datetimepicker1').data("DateTimePicker").debug(true)

yup. use the debug feature. It will keep the picker open.

Ok thanks.


Add relaunch button on environment tab

Fixes Issue
Closes #70
Changes proposed
Added a "Relaunch" Button to relaunch the active environment. This uses the existing functions to perform the said action, hence does not require additional tests. Existing tests and Manual tests have passed and approved.

Check List (Check all the applicable boxes)

[x] My code follows the code style of this project.
[ ] My change requires changes to the documentation. (NO)
[ ] I have updated the documentation accordingly. (Not Required)
[x] All new and existing tests passed.
[x] This PR does not contain plagiarized content.
[x] The title of my pull request is a short description of the requested changes.

Screenshots

Note to reviewers

Signed-off-by: heartbeat1608<EMAIL_ADDRESS>

Sure. I'll make changes to this PR.
On Mon, Oct 17, 2022, 13:10 Ramón Lamana @.***> wrote:

@.**** commented on this pull request.
In client/src/contexts/Okteto.context.tsx
https://github.com/okteto/docker-desktop-extension/pull/82#discussion_r996708357
:

}

interface OktetoStore {

currentContext: OktetoContext | null
contextList: OktetoContextList
environment: OktetoEnvironment | null
output: string
loading: boolean
ready: boolean

login: () => void
stopEnvironment: () => void,
selectEnvironment: (f: string, withBuild: boolean) => void
selectContext: (f: string) => void

currentContext: OktetoContext | null;

It seems you are using your own linter / prettier configuration. We are
working on adding a specific linter config for this project, but until then
can you send a PR with only the changes related to the issue?
—
Reply to this email directly, view it on GitHub
https://github.com/okteto/docker-desktop-extension/pull/82#pullrequestreview-1143639757,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/ALGJXW7QLVRJCZEGHTGEBQ3WDT7GLANCNFSM6AAAAAAREE4Y24
.
You are receiving this because you authored the thread.Message ID:
@.***>

I've add the required color to the button from the color palette. Also updated the prettier config to reflect the changes I made. Should help make the codebase consistent in styling.
For Reviewer
The actual implementation is as follows:

File
Line Range
Comments

Environment.tsx
87 to 100
Add Relaunch button to the UI

Okteto.context.ts
111 to 123
Implement the relaunchEnvironment method

prettierrc.json
most
Add Prettier Config with standard settings

@rlamana Updated the code with the appropriate formatting. Do check it out. Uses the same functionality but with the original strucutre of the code.

This is looking good. I will be testing it end to end today before approving and merging it. Thanks for the contribution!

Made the changes. The comment was for me to not forget the idea behind the function itself. It basically had nothing to do with the documentation.

@HeartBeat1608 with my suggestion about the button color and reverting the .gitignore change I think this is ready to be merged

@rlamana All Requested changes done.

LGTM! Thanks for the contribution @HeartBeat1608


Conversion functions between element index and dimensional index

I didn't spot a function like this in the docs, but is this right?
// Gets the pair index from a matrix. Assumes row-major (but works with either).
fn indices_from_pos(row_stride: usize, ind: usize) -> [usize; 2] {
  let col_ind = ind % row_stride;
  let row_ind = ind / row_stride;
  [row_ind, col_ind]
}

Also, would a pair of methods like this be helpful to have implemented on Matrix?

I can't help but feel that if users need to use this, it indicates that the API is lacking in some aspect, so maybe we should look into these potential deficiencies. Do you have an example when you would want to map between flat data indices and (row, col) indices?

I agree with @Andlon . Currently we accept the row and column index in all functions and produce the flat data index ourself. I'm not sure of a situation when a user would want to do the opposite.
Actually there is one case where I needed something similar but it is very niche. To do some arithmetic strength reduction I had some helper functions that did the above without the mod and divide operators (in some special cases).

Functions that use the Cartesian product of elements of a matrix produce an MNxMN matrix. An example is the method of moments, which involves calculating the distance between each element and all others in the same matrix. In this case, it's convenient to iterate over .data(), but if you need to refer to another matrix that has related dimensions MxN, (say, a tensor containing other characteristics about the same point), you need to do a couple of things to relate the indices.
Here's the math: https://bright-star.gitlab.io/electro/method-of-moments/

I'm afraid that I'm still not convinced (or maybe I just don't get it). Is it possible for you to give a (preferably) small example?
There is actually an example in a PR right now of computing a distance matrix.
And also, if you need to treat two different matrices would it not be easier to zip iterators going over both matrices?
Sorry if I'm misunderstanding!

I can see that this might be convenient in that context, @bright-star.
That said, I think this is conflating two very similar but different problems:

Indexing into the internal data structure of a matrix (which "coincidentally" happens to be laid out flat in the way you want to do)
Mapping indices between two related, but different vector spaces

Due to separation of concerns, it's usually a good idea to not mix these two concepts. In practice, choosing the vector spaces so that it aligns with the row/col alignment of the data structure might give better performance in some cases, but this is probably rarely the bottleneck of your program, and it could perhaps be considered a case of premature optimization. And if it is actually a bottleneck, a function to map indices can still be written outside of the library.
By the way, I really like your write-ups on electrostatics. I haven't read them in detail, and it's certainly not within my area of expertise, but it looks like a useful resource!

@Andlon is right. It just happened that the row-major flat form was what I needed:
fn row_pairwise_dists(&self) -> Vec<Vec<T>> {
    self.grid
        .space
        .data()
        .iter()
        .map(|coord_arr: &[T; 2]| {
          self.grid.space.data().iter().map(|&other_coord_arr| {
            pairwise_dist(coord_arr, other_coord_arr)
          }).collect::<Vec<T>>()
        }).collect::<Vec<Vec<T>>>()
  }

I'm afraid I'm not following this discussion very well...
It seems this issue is at least somewhat resolved? Personally I think that even if this addition would add some utility is very niche and even the implementation of such a function varies on the use case - for example you might need a couple hundred lines of code for efficient indexing....
Am I ok to close this?

@AtheMathmo I'm fine either way. I just wanted to let you know that people will want to do this if they compute a function in the product space of a matrix.


Add DocsSearch-content class

Block modified from https://github.com/readthedocs/sphinx_rtd_theme/blob/master/sphinx_rtd_theme/layout.html#L185


occassional occurred information from terminal

I often get the information in terminal:
build_prompt:1: scalar parameter RETVAL created globally in function build_prompt
build_prompt:2: scalar parameter segment created globally in function build_prompt
I don't know how to reproduce it 100%,it just occur occasionally.
Could anyone tell me what happened to my terminal?
A similar issue is found in https://github.com/zsh-users/zsh-syntax-highlighting/issues/438
but they are different

And what makes you think this issue has anything to do with zsh-syntax-highlighting? There's no build_prompt function in zsh-syntax-highlighting. Looks like you should follow up with whoever wrote that function.
$funcfiletrace and friends may be helpful in tracking that one down.
The warning is generated by the warncreateglobal option.

And what makes you think this issue has anything to do with zsh-syntax-highlighting? There's no build_prompt function in zsh-syntax-highlighting. Looks like you should follow up with whoever wrote that function.
$funcfiletrace and friends may be helpful in tracking that one down.
The warning is generated by the warncreateglobal option.
I'm not sure,the reason why I post it here is that
https://github.com/zsh-users/zsh-syntax-highlighting/issues/438 also has build_prompt....
sorry if I put it at the wrong place

could you tell me where should I post it?
I'm weak in zsh,
do you know how to fix it?
it's annoying,
Thanks for your help~!

You should post this to whoever wrote build_prompt.
I don't know who that is. To find out, you can either grep your dotfiles, or set PS4=%x:$PS4 and then the error message will include the filename.

Actually, forget about PS4; it won't help here. My bad.

Note to self: see about exposing a function definition's file:line coordinates via zsh/parameter. The info must be available already, because it's copied into the C funcstack struct at function calls.

Ah, turns out that already exists.
@appleyuchi Run print -r -- ${functions_source[build_prompt]}.  That should print the name of the file that defines build_prompt.  Tell the author of that file their function isn't WARN_CREATE_GLOBAL-clean.  Good luck!

Thanks for
your help。。。。I have fixed for RETVAL
but I can not fixed it for segment.
because segment is defined in a for-loop

I'm afraid we can't help you with that.  The zsh-syntax-highlighting issue tracker is not a support forum for arbitrary issues involving arbitrary plugins.  Feel free to follow up with the third-party plugin maintainer — I see you've created an issue already (https://github.com/caiogondim/bullet-train.zsh/issues/326) — or with the zsh support forums (#zsh on Freenode and the zsh-users@ list).  In the latter case, don't forget to link to the relevant source code.
Good luck!


Pin django-model-utils version to 2.4.0

Looks like django-rq-scheduler only needs django-model-utils==2.4.0. Currently it causes the latest version of django-model-utils to install which dropped Django 1.x and Python 2.x support. This breaks builds on repos still using Python 2.x and Django 1.x.
This PR pins the required version to fix that.

Please don't do this; it will prevent using a newer version of django-model-utils in projects that wish to do so. If you need an older version of django-model-utils for compatibility with your project, you should pin it in your project's requirements rather than here.

I second @davisagli
Will need to start a discussion on Django version support.


Numba DeviceNDArray doesn't handle shape=() correctly

Reporting a bug

[x] I am using the latest released version of Numba (most recent is visible in
the change log (https://github.com/numba/numba/blob/master/CHANGE_LOG).
[x] I have included below a minimal working reproducer (if you are unsure how
to write one see http://matthewrocklin.com/blog/work/2018/02/28/minimal-bug-reports).

When trying to create Numba DeviceNDArrays with shape=(), it turns the shape into (1,) instead. This differs from behavior seen in NumPy.
In [1]: import numpy

In [2]: import numba.cuda

In [3]: numpy.ndarray(()).shape
Out[3]: ()

In [4]: numba.cuda.device_array(()).shape
Out[4]: (1,)

In [5]: numba.cuda.device_array_like(numpy.ndarray(())).shape
Out[5]: (1,)

Thanks for the report, I can reproduce. Problem comes from here: https://github.com/numba/numba/blob/f3ca34da03b03c62a27daacfbddf63f7d72e7cee/numba/cuda/api.py#L208-L209
Suggested fix might be:
diff --git a/numba/cuda/api.py b/numba/cuda/api.py
index 39da6632f..492a84af3 100644
--- a/numba/cuda/api.py
+++ b/numba/cuda/api.py
@@ -205,14 +205,14 @@ def _prepare_shape_strides_dtype(shape, strides, dtype, order):
     if isinstance(strides, (int, long)):
         strides = (strides,)
     else:
-        if shape == ():
-            shape = (1,)
         strides = strides or _fill_stride_by_order(shape, dtype, order)
     return shape, strides, dtype

 def _fill_stride_by_order(shape, dtype, order):
     nd = len(shape)
+    if nd == 0:
+        return ()
     strides = [0] * nd
     if order == 'C':
         strides[-1] = dtype.itemsize

I think this was fixed in #5359

I'm not sure this is fixed - with:
from numba import cuda
import numpy as np

print(np.ndarray(()).shape)

print(cuda.device_array(()).shape)

print(cuda.device_array_like(np.ndarray(())).shape)

I get:
()
(1,)
(1,)

on the latest master.

Darn, guess I didn't look far enough the first time


MultiSteps does not work with update functions that require parameters

The MultiSteps wrapper https://github.com/deepmind/optax/blob/30947fbc5743adc3e997c6242fa3775834862a74/optax/_src/wrappers.py#L179 for gradient accumulation does not feed parameters to the wrapped optimizer. These are needed for e.g. weight decay https://github.com/deepmind/optax/blob/30947fbc5743adc3e997c6242fa3775834862a74/optax/_src/transform.py#L547 which I think is used in almost every optimizer chain.
As far as I can tell every transformation accepts params, so is there any reason not to pipe them through?

As I understand, this bug was fixed by #150 at the time so I am closing this issue for now. Thanks a lot for reporting!


Use new unallocated_stock quantity in the part table and in the search results

Display available quantities in part table instead of in_stock quantities.
Also enhance the stock badge to show No Stock / Not available / Building xxx / On order xxx in the table.
Render the badge used in the search results using the same principle, but showing available/in stock quantities.

Nice @rkalman thanks for the improvements here. Hopefully we can roll this into the BOM table soon too!


Proposal: Run PyFunceble for each release

the proposal is to remove domains that PyFunceble mark as "INACTIVE" and "INVALID" from every source for each release

This is interesting! @MrRawes I also want to create an Action for my repo, to check for a scheduled inactive domain.  Do you have any instructions I can follow? Thank you!

Thank you for this suggestion @MrRawes.
Not going to happen.  Here's why; two reasons:
Firstly, I trust my list curators.
Secondly, almost all viruses and trojans are discovered because their outbound traffic is detected. I want to protect against the case where scumbags go dark for a time, their trojans still active in userland, to reawaken and go live again later.  The fact that there's presently no destination server responding, or presently no DNS resolving, that's trivial to reawaken.
Sensible?

Hi @\all, author of @Pyfunceble here.
We always have the discussion around here and Steve @StevenBlack argument was and still is consistent. And he is right.
That's why you should never use PyFunceble just to "clean dead domains". You should always run PyFunceble over and over as it keeps inactive inside a locally stored database - for retesting. In fact that's what is happening at @dead-hosts and @ultimate-hosts-blacklist. Out there PyFunceble is running over and over testing the current but also the previously marked as inactive. As the software evolve or a subject is coming back, PyFunceble will just re-flag them as ACTIVE.
In the future, there may be a proper infrastructure/open (exchange?) platform to improve the way and the scale of testing. But it's still in the making.
Stay safe and healthy!

@funilrys Thanks for your PyFunceble project! I have created a repo based on the dead-hosts project's template, but it seems I don't know the configuration so the Action run fails! I have opened the issue here but no reply. Please help me! Thanks you!


Select All/ Deselect All After Object Fetch

Add a Select All/ Deselect All checkbox for object selection.
After fetching all objects having a checkbox to Select All/ Deselect All to make it easier to grab only needed objects faster.

There is much room for improvement of the object selection interface.  This is related to #33 which makes a different, but related ask, and my comments on that issue extend the idea as well. All of those suggestions should be included.

I needed this just before this release :-) glad you made it happen.


Better function not found diagnostics

This change is

Current dependencies on/for this PR:

main

PR #2445

PR #2446

PR #2447

PR #2448   👈

This comment was auto-generated by Graphite.


Fix for Python 3.10

Changes proposed in this pull request:

Fix for Python 3.10
Inspired by https://github.com/pypa/setuptools/pull/1824

Python 3.7.4 (default, Jul  9 2019, 18:13:23)
[Clang 10.0.1 (clang-1<IP_ADDRESS>)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> import sys
>>> sys.version
'3.7.4 (default, Jul  9 2019, 18:13:23) \n[Clang 10.0.1 (clang-1<IP_ADDRESS>)]'
>>> sys.version[:3]
'3.7'
>>> v310 = '3.10.4 (default, Jul  9 2019, 18:13:23) \n[Clang 10.0.1 (clang-1<IP_ADDRESS>)]'
>>> v310[:3]
'3.1'

The master branch is failing the same way with ImportError: No module named six.

afaict this was an abandoned attempt at factoring out pkg-resources from setuptools? cc @jaraco

That's right. Not completely abandoned, but definitely not supported or actively pursued.

Regardless, it will get synced with setuptools, so if the fix is there, no need to implement it here separately.


[test-triage] chip_sw_aon_timer_irq

Hierarchy of regression failure
Chip Level
Failure Description
0.chip_sw_aon_timer_irq.3383118308
Line 493, in log /container/opentitan-public/scratch/os_regression/chip_earlgrey_asic-sim-vcs/0.chip_sw_aon_timer_irq/latest/run.log
UVM_ERROR @ 3863.306594 us: (sw_logger_if.sv:523) [aon_timer_irq_test_prog_sim_dv(sw/device/tests/aon_timer_irq_test.c:147)] CHECK-fail: Timer took 331 usec which is not in the range 295 usec and 331 usec
UVM_INFO @ 3863.306594 us: (uvm_report_catcher.svh:705) [UVM/REPORT/CATCHER]
--- UVM Report catcher Summary ---
Steps to Reproduce

GitHub Revision: 81bf46767
dvsim invocation command to reproduce the failure, inclusive of build and run seeds:
./util/dvsim/dvsim.py hw/top_earlgrey/dv/chip_sim_cfg.hjson -i  --build-seed<PHONE_NUMBER> --fixed-seed<PHONE_NUMBER> --waves fsdb

Tests with similar or related failures

[ ] Test_name_1
[ ] Test_name_2

@engdoreis I have one question here. The aon_timer_irq_test.c assumes the variation of the timer is 5%. Somehow the error hit the upper bound. Could you let me know where the 5% came from? Is it based on the code?

Since dif_aon_timer_watchdog_start() does not lock the register sync, the max delay between the SW writes to the CSR and the tick start could be 5us. Also, the test assumes the cycle 62. But the real time with value 0x3e is 63 cycles as the interrupt is latched to CSR first then generate. I will revise the test to account for one more cycle (irq_time -1 )

https://github.com/lowRISC/opentitan/pull/16606 has been created to address this.

@engdoreis I have one question here. The aon_timer_irq_test.c assumes the variation of the timer is 5%. Somehow the error hit the upper bound. Could you let me know where the 5% came from? Is it based on the code?

The test was developed using Verilator and the 5% came from testing on Verilator.

@engdoreis I have one question here. The aon_timer_irq_test.c assumes the variation of the timer is 5%. Somehow the error hit the upper bound. Could you let me know where the 5% came from? Is it based on the code?

The test was developed using Verilator and the 5% came from testing on Verilator.

I see.. I thought the AON clock frequency is defined per target platform. anyhow, thanks for the explanation.

I will close this issue as the fix has been merged.


Sankey

Please have a good read on Clean Code: A Handbook of Agile Software Craftsmanship (Robert C. Martin)


Consider adding a requirements.txt file

@canerturkseven Awesome job with this repo. Adding a requirements.txt file will help other users recreate the experiments. Kindly consider adding it to the repo. Thanks!

@ngupta23 Thank you Nikhil for your encouraging words! As of now, installation requirements can be found in the setup.cfg file.


Add support for PyTorch GPU memory limit

Set CUDA_MEMORY_PCT between 0.0-1.0 inclusive to limit memory use in PyTorch. Defaults to 1.0.
This is useful, for example, in shared environments such as AWS's Virtual GPU device plugin.
Addresses #39

Test on local Linux running PyTorch 1.13.0 with CUDA12. Should be similar in EKS et al.


Port missing in 'ConnectionConfig' TypeScript definition?

Environment
Knex version: 0.18.4
Database + version: Postgres 9.5
OS: macOS 10.14
If issue is about TypeScript definitions, tag @lorefnon.
Bug
(I'm opening this issue under the assumption that I'm supposed to use 'ConnectionConfig' to type my PG connection config object. If my assumption is wrong, then there seems to be a missing type definition for Postgres connection config?)

The pg library accepts a port key, and passing the port key to knex indeed works:
import Knex from 'knex';

// TS compiler complaining about 'port' not being in the type definition
const pgConnectionConfig: Knex.ConnectionConfig = {
    port: 1234,
    host: 'myhost'
    user: 'myuser'
    password: 'mypw'
    database: 'mydb'
};

// Attempts to connect to 'myhost' on port 1234
const k = Knex({
  client: 'pg',
  connection: pgConnectionConfig,
  ...
});

but this key is missing in the ConnectionConfig interface.

Could you create a pr with the fix?

isn't there separate interface for pg config in master, though?

@kibertoad Sure!  As for the config interfaces, I only see these: ConnectionConfig | MariaSqlConnectionConfig | MySqlConnectionConfig | MsSqlConnectionConfig | OracleDbConnectionConfig | Sqlite3ConnectionConfig | SocketConnectionConfig (link).
There isn't an interface called PgConnectionConfig or something similar, which is why I assumed ConnectionConfig to be the "PG interface". Should that be renamed to PgConnectionConfig?

@kibertoad Just submitted a PR for a separate PgConnectionConfig interface -- I'm still unsure about what driver ConnectionConfig is meant for...

Released in 0.20.1


Avoid Performance hit by not rerendering the whole gm screen if possible

Is your feature request related to a problem? Please describe.
Related to performance, fromUuid is expensive and we should avoid calling it so much.
Describe the solution you'd like
Instead of just calling render(), we should provide a method refresh() which does the following:

Iterate over cells and see if any uuid has changed, if a uuid has changed, only refresh that cell.
Update the grid specific dimensions and settings

Ideally this "refresh" will happen behind the scenes and the button on the UI can go away.

Done with 2.4.0!


Allow skipping a workflow if mutex cannot be acquired

Summary
If a mutex is at the workflow level, other workflows with the same mutex will wait till the mutex is acquired. However, there would be cases where we would want to skip a workflow entirely if another instance of the workflow has the mutex. This could be doable via some configuration option like the following:
                synchronization:
                    mutex:
                        name: test
                    acquireFailurePolicy: skipWorkflow

We could expose different types of policies like skipWorkflow, wait, etc.
Use Cases
There are cases were a workflow runs to ingest / update some data set, for instance fetch new rows from a database for a given entity. Running two of the same workflows will have no meaning as they will fetch the exact same data, thus a mutex prevents this duplication, however currently it does not prevent duplicating work back-to-back without custom logic within the workflow executable. A policy that would determine what to do if a lock is not acquired would allow skipping the secondary (redundant) workflow entirely.
Beyond this issue, one could allow more complex blocking policies as well, where a mutex is considered to be "held" for longer periods of time than a workflow is running for. For instance, say I ingest data that get updated every 12h from some remote source. If a single one of the workflows has been run within that time window, we could force the mutex to be held for 12h, even if the workflow has been completed, so as no other workflows can run and do redundant work within that time period. This would be useful because, even if skipWorkflow is accepted as a feature request, one could schedule redundant workflows to be running one after the other without lock contention.

Message from the maintainers:
Love this feature request? Give it a 👍. We prioritise the proposals with the most 👍.

As semaphores and mutexes can be used at a finer grained level than a whole Workflow, I'd suggest the policy should be just called skip, but with the implementation implied by skipTemplate.
To implement #12757 (which is mine, so I do have an interest here) you'd need a steal policy, which is problematic to implement for semaphores, as which one do you steal - I guess you could have stealOldest or stealNewest. We could just disallow steal on semaphores, and only allow it on mutex. Do we implement stealWithStop separately from stealWithTerminate?
It's somewhat preferable to implement this mechanism over #12757's proposal because it's more powerful. It's also much less intuitive for the simple case that that issue is aiming for and requires more typing.

I'd suggest the policy should be just called skip

+1 on the above definitely cleaner.
Re:

Beyond this issue, one could allow more complex blocking policies as well, where a mutex is considered to be "held" for longer periods of time than a workflow is running for. For instance, say I ingest data that get updated every 12h from some remote source. If a single one of the workflows has been run within that time window, we could force the mutex to be held for 12h, even if the workflow has been completed, so as no other workflows can run and do redundant work within that time period. This would be useful because, even if skipWorkflow is accepted as a feature request, one could schedule redundant workflows to be running one after the other without lock contention.

do you think that warrants a separate ticket entirely? Or would it be something that could be added as part of the policy implementation? (e.g., for a lock to be held longer than the mere execution time of the workflow)

Beyond this issue, one could allow more complex blocking policies as well, where a mutex is considered to be "held" for longer periods of time than a workflow is running for. For instance, say I ingest data that get updated every 12h from some remote source. If a single one of the workflows has been run within that time window, we could force the mutex to be held for 12h, even if the workflow has been completed, so as no other workflows can run and do redundant work within that time period. This would be useful because, even if skipWorkflow is accepted as a feature request, one could schedule redundant workflows to be running one after the other without lock contention.

do you think that warrants a separate ticket entirely? Or would it be something that could be added as part of the policy implementation? (e.g., for a lock to be held longer than the mere execution time of the workflow)

At the moment locks (mutexes and semaphores) are owned by a workflow run. There is no mechanism for holding a lock outside of being held by a workflow. This would need a separate implementation, so should be a separate issue.
I'd also regard this as something we should possibly NOT implement at all. This is edging into the realm of making workflows a scheduler, which is outside of the core scope of the product. I'd rather this was implemented in some other scheduling tool.

There is no mechanism for holding a lock outside of being held by a workflow.

It does not necessarily need to be that the lock is held outside the workflow - the workflow could just keep the lock for a longer period and just spin wait. We can track in a separate issue however. Skipping the workflow entirely if a mutex cannot be acquired is the core ask of this issue


discuss whether workqueue.queue.go need an isDone method

if workqueue.queue.go support isDone method, user can shutdown the queue ,and make sure the queue has been cleaned before exit
func (q *Type) IsDone() bool {
	q.cond.L.Lock()
	defer q.cond.L.Unlock()
        return q.shuttingDown&&len(q.dirty)==0&&len(q.processing)==0
}

a method like this that requires polling is not ideal. the Get() method returns a boolean that indicates if the queue is empty and shutting down. Having your processing loop handle that return value being true by shutting down is the recommended approach.
/close

@liggitt
the key of IsDone is checking all items is processed, no processing ,no dirty
i cannot known whether all of items in queue is finished by using get() or len()
maybe IsDone is a better choice to check it ?

i cannot known whether all of items in queue is finished by using get() or len()

The workqueue example demonstrates how to run worker goroutines that pull from the workqueue until it is shutdown and queued items are drained. Once all worker goroutines complete, the queue is empty and no items remain to be processed.

@liggitt if only one items in the workqueue.queue,
shutdown...
get() will make queue size =0 and processing size =1
done() will delete the processing queue ,make processing=0
next round...
get() will return 0 and true (shutdown flag)
the processing job is forced kicking out of queue ,but job(maybe sleep, io ops) are not actually done

the processing job is forced kicking out of queue ,but job(maybe blocking in syncToStdout) are not actually done

The worker should not call Done() while it is still processing the item. See the example for deferring the call to Done() until the sync handler is complete

thx , i know it now
but if i want to catch a sigterm or sigint , and  make all of my job  processed,How can i do it

but if i want to catch a sigterm or sigint , and make all of my job processed before exit ,How can i do it

in your signal handler, you can call queue.ShutDown(), then use a wait group to track the workers that are still running so that they all complete before your Run method returns:
wg := &sync.WaitGroup{}
for i := 0; i < workers; i++ {
  wg.Add(1)
  go func(){
    defer wg.Done()
    for c.processNextItem() {}
  }()
}
wg.Wait()

but if i want to catch a sigterm or sigint , and make all of my job processed before exit ,How can i do it

in your signal handler, you can call queue.ShutDown(), then use a wait group to track the workers that are still running so that they all complete before your Run method returns:
wg := &sync.WaitGroup{}
for i := 0; i < workers; i++ {
  wg.Add(1)
  go func(){
    defer wg.Done()
    for c.processNextItem() {}
  }()
}
wg.Wait()

thx fo reply


Implement From<> on protobuf:oneof

Hello,
It would be great if the code generator would auto implement From<> anytime it encounters a protobuf::oneof.
I find myself implementing From<> all the time to simplify how to use the auto generated code.
If I understand correctly, anytime we encounter protobuf::oneof we get an object of this form:
pub struct Object {
    #[prost(oneof = "inner::Value", tags = xxx)]
    pub value: ::core:option:Option<inner::Value>,
}

So I wind up writing casts like this all the time
impl From<inner::Value::X> for Object {
   fn from(value: inner::Value::X) -> Object {
      Object {
           value: Some(v),
      }
   }
}

This is an issue better opened in the prost repo


Timezone selection in setup

Need to be able to select current timezone. Unable to select 'Austrailia/Melbourne'.
How can this be modified so that the timezone is correct?

simply allowing all UTC +/- selections would be best. i.e UTC +1100

We will try to add more timezones in the next release. No ETA on when that will be, I am afraid.


FindLocalNodeFromDestionationId uses uninitialized IPKs

Problem
After AddNOC, we should have one valid IPK.  However, FindLocalNodeFromDestionationId is using all three epoch keys as candidates, meaning it will accept a match if the initiator uses an all-zero hmac(IPK) because uninitialized epoch key indices 1 and 2 are accepted as candidates.
Proposed Solution
Make sure candidateDestinationIdSpan does not accept match against uninitialized IPK epoch keys.

CC @tcarmelveilleux , @kianooshkarami

Looks to be an off-by-one error with this fix:
// Try every IPK candidate we have for a match
-        for (size_t keyIdx = 0; keyIdx <= ipkKeySet.num_keys_used; ++keyIdx)
+        for (size_t keyIdx = 0; keyIdx < ipkKeySet.num_keys_used; ++keyIdx)


The ESC Button on Terminal dont have a function

Please make it possible to presh ESC on the terminal - at this time we cant do that a freeze/stuck in terminal menu

Please make it possible to presh ESC on the terminal - at this time we cant do that a freeze/stuck in terminal menu

i don't understand, ESC already leaves the terminal

All right. I will try our modlist. Idk if it that mod exactly

Issue can be closed


Parent context reference behaves strangely

In the following example, ../ seems to be equal to . so I have to use ../../ to get to the parent context. E.g: I would expect Y to work instead of Z.
It seems that adding a block helper like {{#if}} also adds another parent context level, even when the block context is equal to the parent context.
Is this intended behavior or a bug?
HTML:

JavaScript:
var template = document.getElementById('template').innerHTML;
var compiled = Handlebars.compile(template);
var data = {
	ready: true,
	questions: [ {
		id: 1,
		answers: [ { code: 'a' } ]
	} ]
};
var html = compiled(data);
document.body.innerHTML = html;

Output:
X: 1.a
Y: .a
Z: 1.a

Fiddle: http://jsfiddle.net/peterpaul/yd574m6n/

This is the intended behavior.


[release-v1.11] Test Keda Kafka Source Scaling (#3491)

Cherry pick of https://github.com/knative-extensions/eventing-kafka-broker/pull/3491

@Cali0707 can you take a look at the failures ?

Are they related to this change ?

@pierDipi they are because https://github.com/openshift-knative/eventing-kafka-broker/pull/901 hasn't merged yet

This commit removes the DefaultActivationLagThreshold variable because it's unused, but it only stops being used in #901

@Cali0707 PR is in now!

/retest

/test 414-test-reconciler-aws-ocp-414

/test 411-test-reconciler-aws-ocp-411

/test 414-test-reconciler-aws-ocp-414

/retest

/retest

/retest

hmm
Exception in thread "contract-file-watcher" Exception in thread "contract-file-watcher" Exception in thread "contract-file-watcher" Exception in thread "contract-file-watcher" java.lang.NullPointerException: Cannot invoke "io.vertx.core.http.HttpServer.updateSSLOptions(io.vertx.core.net.SSLOptions)" because "this.httpsServer" is null
	at dev.knative.eventing.kafka.broker.receiver.impl.ReceiverVerticle.updateServerConfig(ReceiverVerticle.java:250)
	at dev.knative.eventing.kafka.broker.core.file.FileWatcher.run(FileWatcher.java:148)
	at java.base/java.lang.Thread.run(Thread.java:840)
java.lang.NullPointerException: Cannot invoke "io.vertx.core.http.HttpServer.updateSSLOptions(io.vertx.core.net.SSLOptions)" because "this.httpsServer" is null
	at dev.knative.eventing.kafka.broker.receiver.impl.ReceiverVerticle.updateServerConfig(ReceiverVerticle.java:250)
	at dev.knative.eventing.kafka.broker.core.file.FileWatcher.run(FileWatcher.java:148)
	at java.base/java.lang.Thread.run(Thread.java:840)
java.lang.NullPointerException: Cannot invoke "io.vertx.core.http.HttpServer.updateSSLOptions(io.vertx.core.net.SSLOptions)" because "this.httpsServer" is null
	at dev.knative.eventing.kafka.broker.receiver.impl.ReceiverVerticle.updateServerConfig(ReceiverVerticle.java:250)
	at dev.knative.eventing.kafka.broker.core.file.FileWatcher.run(FileWatcher.java:148)
	at java.base/java.lang.Thread.run(Thread.java:840)
java.lang.NullPointerException: Cannot invoke "io.vertx.core.http.HttpServer.updateSSLOptions(io.vertx.core.net.SSLOptions)" because "this.httpsServer" is null
	at dev.knative.eventing.kafka.broker.receiver.impl.ReceiverVerticle.updateServerConfig(ReceiverVerticle.java:250)
	at dev.knative.eventing.kafka.broker.core.file.FileWatcher.run(FileWatcher.java:148)
	at java.base/java.lang.Thread.run(Thread.java:840)

  Warning  InternalError  32m   consumergroup-controller  failed to initialize consumer group offset: failed to initialize offset: failed to get the topic offsets: dial tcp <IP_ADDRESS>:9092: i/o timeout

  ----     ------            ----                ----               -------
  Warning  FailedScheduling  11s (x88 over 33m)  default-scheduler  0/6 nodes are available: 3 Insufficient cpu, 3 node(s) had untolerated taint {node-role.kubernetes.io/master: }. preemption: 0/6 nodes are available: 3 No preemption victims found for incoming pod, 3 Preemption is not helpful for scheduling.

PR for adding more nodes https://github.com/openshift-knative/serverless-operator/pull/2486

/approve
/lgtm

/test 414-test-reconciler-aws-ocp-414

/retest

/retest-required


Alan to Rust transpiler code

This branch has the work on a more "real" transpiler. Feeling out the responsibilities between the lntors, parse, and program sections of the compiler. I'm going to try to make lntors as "dumb" as possible and move things like type and function resolution into the program so it should be more easily reusable for the eventual shader transpiler logic. Also thinking that I may want to revive the js transpile path that was in Alan 0.1, initially to use as the interpreter path in the Alan CLI, but also potentially useful for the browser path if the WASM transpile path with WGPU is too finicky, and especially useful for a demo website like the current alan-lang.org where the compiler is running in the browser generating code the browser can run directly. I don't know if you can dynamically generate WASM code and then load it, so that would be an escape hatch if it's not possible.

First step in making a more real transpiler: establish a subdirectory for all of the soon-to-be source files
Run cargo fmt
Add logic to properly load the standard library from embedded strings in the compiler (and prove it by parsing the root scope on evey compilation
Move the function generation to a separate file
Move the old root scope to an unused filename and create a new root scope with a single entry for now
Fix formatting
Update TODOs in the resolve functions to make it clearer which way they're going to evolve
Add super simple 'to-rs' sub-command to get the generated Rust code as a file. Good for debugging

There are things here that need to be addressed, but I want to get this merged to main now and tackle those in other PRs before this gets too far out of hand and difficult to follow in the future.
The move to microstatements and generating code from that has made the recursive-decent code generation I needed available. I will try to tackle the type info stuff in another PR because it'll probably be really tricky.


Update pin on esmvalcore pick up esmvalcore=2.3.0

Description

Closes #2199
Works around this failure by pinning matplotlib to an older version and nc-time-axis restricted to not be 1.3.1 (even if that's currently impossible to be installed with iris as explained in this issue https://github.com/SciTools/nc-time-axis/issues/71 - the new nc-time-axis may be resolvable in the future with iris, but the plotting issue may still persist)
add setup.py to flake-8-ignore list

Before you get started

[ ] ☝ Create an issue to discuss what you are going to do

Checklist
It is the responsibility of the author to make sure the pull request is ready to review. The icons indicate whether the item will be subject to the 🛠 Technical or 🧪 Scientific review.

[ ] 🛠 This pull request has a descriptive title
[ ] 🛠 Code is written according to the code quality guidelines
[ ] 🛠 Any changed dependencies have been added or removed correctly
[ ] 🛠 All checks below this pull request were successful

To help with the number of pull requests:

🙏 We kindly ask you to review two other open pull requests in this repository

Great, thanks! Just please do the checklist!

shall do, boss! Just waiting on the tests :+1:

conda build running out of resident memory again and the other tests taking an eternity, might be finished by the time Wales-Turkey game starts :wales: - :tr: I'll try rerun the conda build test again, hopefully it was a fluke, but if it's persistent we'll just have to merge this and deal with it separately

looking into conda build consuming copious amounts of memory now

OK - tests pass, env gets created, etc etc (and I pinned Matplotlib due to conflicts with nc-time-axis, see above) - only thing that is a showstopper is (again) conda-build that's going through the roof on memory - I ran some local tests and can't throttle the memory just yet, @zklaus you OK to merge this now and I'll keep working on the conda-build memory sink? I think this is starting to be needed by others

Yes, I am ok with that.

hang on I think I've fixed it

If you want to experiment, that's fine, but I am not prepared to leave Python 3.8 behind just yet. In fact, I am not completely sure about Python 3.7, but that might be ok. All in all, if the problem really is only with the conda-build, I would highly recommend to merge this PR soon, preferably with Python>=3.7, and continue any necessary work on the conda-build separately.

I will right after the test (hopefully) passes, then I will revert back to 3.7 and merge, gimme 10min max, man

Start the clock :tongue:

OK Ive reverted the test bits (looks like with Python 3.9 only conda build goes on w/o memory issues) - waiting for all tests bar conda build to finish and then immediately merge


[Bug]: Error with sass-loader

What happened?
Hello guys !
When I use the webpack_rule with the sass-loader plugin, I get the following error:
Error: Module build failed (from ./node_modules/.aspect_rules_js/sass-loader@14.2.1_-1555667799/node_modules/sass-loader/dist/cjs.js):
Error: ENOENT: no such file or directory, scandir<EMAIL_ADDRESS>
The webpack target is configure like this in my BUILD.bazel:
webpack_bundle(
  name = "desktop_frontend",
  output_dir = True,
  node_modules = "//:node_modules",
  webpack_config = "src/desktop/frontend/webpack.config.js",
  entry_point = "src/desktop/frontend/index.js",
  deps = [
    ":transpile",
    "//:node_modules/webpack-cli",
    "//:node_modules/mini-css-extract-plugin",
    "//:node_modules/terser-webpack-plugin",
    "//:node_modules/css-minimizer-webpack-plugin",
    "//:node_modules/webpack-bundle-analyzer",
    "//:node_modules/css-loader",
    "//:node_modules/style-loader",
    "//:node_modules/sass-loader",
    "//:node_modules/node-sass",
    "//:node_modules/mdast-util-to-hast",
    "//:node_modules/unist-util-visit",
    "//:node_modules/stylis",
  ],
  srcs = glob([
    'src/desktop/frontend/**/*.html',
    'src/desktop/frontend/**/*.scss',
    'src/desktop/frontend/**/*.css',
    'src/desktop/frontend/**/*.png',
    'src/desktop/frontend/**/*.jpg',
    'src/desktop/frontend/**/*.ico',
  ]),
)

Where the target transpile is a target to compile my typescript.
Did I do something wrong ?
Version
Development (host) and target OS/architectures:
Output of bazel --version: bazel 7.1.2
Version of the Aspect rules, or other relevant rules from your
WORKSPACE or MODULE.bazel file:
Language(s) and/or frameworks involved:
How to reproduce
No response
Any other information?
No response

I fixed my problem !
I updated node-sass to sass and everything works perfectly :-)

Since node-sass is deprecated I think that is the correct solution and I'll close this one 👍


adjusting the footer

## Description
adjusting the theme of the footer as per website theme and the padding issue
##Addition
changing the CSS file of footer and addition of logic in footer.jsx for the pop up animation of footer
## Checklist
[✅] I have read and followed the [Contribution Guidelines
[✅] All new and existing tests passed.
[✅] I have updated the documentation to reflect the changes I've made.
[✅] My code follows the code style of this project.
[✅] The title of my pull request is a short description of the requested changes.
##Screenshots

Program -GSSOC 24

on moving to home page from login or signup page, we can see footer which must not be there, it should be only in the bottom of the home page.


No Reverb and other issues after compiling apk for Android

As soon after I create an apk for Android, only the occlusion continues to work. Any reverb/material settings and so on just stop working. This affects the android application as well as the editor.
After I compiled the apk, I only can clean all of unity's temporary files via git clean -fx or make a compile a build for windows to get it working in the editor again. But that doesn't solve the problem that I can't use Steam Audio on Android properly.

@Luux - Steam Audio on Android only supports HRTF based audio rendering and direct sound occlusion features. Other parts are compute intensive and currently not supported on Android.
We will try to reproduce the issue with Editor after building APK.

Shouldn't recent Android Devices be beefy enough to compute the baked reverb? I mean, even my 10 year-old notebook was able to handle our realtime test scenes (but I don't want to bake anything on that, that takes years... ;))
We wanted to do a small project with mobile gyroscope controls, focusing on the 3D audio, that's why I'm asking.

@Luux - You should be able to do at least HRTF-based spatial audio + occlusion.
Enabling physics-based propagation and reverb stuff on Android is something we plan to work on but do not have any definitive timeline for that, sorry about that.

@achandak is the material reverb working for Unity in OSX? Because it doesn't work and I literally don't know why.

@Luux - We looked into the issue you reported on Android.
Once you build an APK, platform is switched to Android for the Editor. Since, reverb is not supported on Android, you don't hear reverb in Editor now.
If you switch the platform again to PC, you should start hearing reverb again.

So it's been 2 years now, is this possible? I'm using the UE4 plugin and there's no way to assign Steam Audio as the reverb plugin.


Login Page

There is a slight issue with backend and how it should connect to the frontend, but apart from that everything works.

If you figure out how to connect the frontend to the backend, let me know. For testing main page, comment the axios, and use only the code in the if(response.data.success) block.

There is a slight issue with backend and how it should connect to the frontend, but apart from that everything works.

Look at slide 33 of class lecture. It should work.

Will do. Thanks!


Relationships between same entity types are not supported

Describe the bug
DSpace angular is currently missing support for relationships between the same type.
Example: Linked publications, or parent and child projects.
In the edit item -> relationships tab, you will only get one of those relationships and won't be able to add more items.
To Reproduce

Set up a stock Dspace 7.2 to serve as the backend
Configure a relationship that uses the same entity type on both ends.

        <leftType>Publication</leftType>
        <rightType>Publication</rightType>
        <leftwardType>isPublicationLinkedTo</leftwardType>
        <rightwardType>isPublicationLinkingTo</rightwardType>
        <leftCardinality>
            <min>0</min>
        </leftCardinality>
        <rightCardinality>
            <min>0</min>
        </rightCardinality>
        <copyToRight>true</copyToRight>
    </type>

Go to the front end and ensure a couple of publications are present in the repository.
Go to the edit Item page of one of the publications and to the relationships tab
Look through the present relationships
Verify that there is a relationship present without a header, but just an add button
Verify that clicking that add button opens an empty modal instead of the normal lookup window

Expected behavior

The publication to publication relationship should be shown with proper title for both sides of the relationship.
Users should be able to add new relationships through the add buttons
The added relationships should be displayed under the correct side of the relationship (isPublicationLinkedTo vs isPublicationLinkingTo)

Bumping up priority to medium as a slightly clearer use case may exist (based on this dspace-tech thread).  One use case is relating an OrgUnit to another OrgUnit (which would be necessary to create an OrgUnit hierarchy).

Atmire would like to claim this issue


Revert test coverage settings for communication-identity

Description
Reverting a change from #33397
All SDK Contribution checklist:

[ ] The pull request does not introduce [breaking changes]
[ ] CHANGELOG is updated for new features, bug fixes or other significant changes.
[ ] I have read the contribution guidelines.

General Guidelines and Best Practices

[ ] Title of the pull request is clear and informative.
[ ] There are a small number of commits, each of which have an informative message. This means that previously merged commits do not appear in the history of the PR. For more information on cleaning up the commits in your PR, see this page.

Testing Guidelines

[ ] Pull request includes test coverage for the included changes.

/azp run java - azure-communication-identity - tests


Don't Merge! PR real time test for source branch full build

Docs Build status updates of commit 9153116:
:clock10: Pending: waiting for processors (26 builds ahead of you)
:warning: Docs Build is busy, currently there are 26 builds ahead of this one, for more information you can view the Build queue graph on the Docs Portal.

Docs Build status updates of commit 9153116:
:clock10: Full build: the average full build time is 7 min(s) 41 sec(s), this is based on the last 30 build(s) for this repository.

Docs Build status updates of commit 9153116:
:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

docfx.json
:white_check_mark:Succeeded

For more details, please refer to the build report.
Note: Broken links written as relative paths are included in the above build report. For broken links written as absolute paths or external URLs, see the broken link report.
For any questions, please:Try searching in the Docs contributor and Admin GuideSee the frequently asked questionsPost your question in the Docs support channel


artifactCleanup user plugin issue

Does not seem to do what it states.
We confirmed via request and access logs in artifactory that several artifacts were utilized in a build in mid November 2017. The artifacts were deleted in January 2018 by the artifactCleanup user plugin, also confirmed in the artifactory logs.
Our artifact cleanup cronjob passes in a 36 month parameter to the artifactCleanup script, and based off the description of this user plugin, it should be filtering out any artifact downloaded within the past 36 months.
Apparently it is not doing what it states.

user error.


custom element to context pad

Hi there I saw your latest update for the color picker and it's amazing thanks for your attention and updating.
the last thing I'm involved with is this::

Can we add some custom elements we are designing with the draw ability?

I think this is a custom requirement and should not be supported in this project.
But bpmn.js does have an official example to help you implement a custom shape, it just needs some modifications to add it to the changeMenu menu

I've already change and add custom shape in bpmn.dev.js
but I can't see my changes om the display...
should I change sth else?
or use npm install to modify the changes or sth?

You need to modify the ReplaceMenuProvider and ReplaceOptions files in bpmn.js

let me check again so
thankss

do u have an email to contact u instead of opening a new issue if needed?

I only have a QQ<EMAIL_ADDRESS>

I sent u an email to u now  did u received?


AnjanaS

Description

Related Issues

Changes Proposed

Checklist

[x] I have read and followed the Contribution Guidelines.
[x] All new and existing tests passed.
[x] I have updated the documentation to reflect the changes I've made.
[x] My code follows the code style of this project.
[x] The title of my pull request is a short description of the requested changes.

Screenshots
Note to reviewers

Hi @AnjanaS2004 , thanks for your interest in contributing to DevDisplay!
We noticed you adding your profile on #DevDisplay but forgot to star the repo. It's like making an amazing sandwich and forgetting to take a bite! -- I think our repo's feeling a little lonely without your 🤗 So, be sure to star the DevDisplay GitHub Repository. 🌟
💌 This is a mandatory step for all contributors. & It's is the first priority of contribution in DevDisplay 💌
Thanks 👍🏻


Typo on get_samples documentation for error_codes param

Just a small typo.

Ops, my editor ended updating the styles of this entire file on saving. The only real change is in the line  567.

@daviscabral Thank you!


The path docker/docker/docker/docker/docker/docker/docker/docker/docker/docker/ is missing the requisite mushroom/mushroom

Please review the changes in PR#11 to see if this matches specification

ayo @swagopopotamus how do you feel about http://tirefi.re/docker/ now?

Pretty sad, considering it cannot satisfy my request.

Why you gotta bring up bad times? I blame cloudfront. Should work now.

This pleases me.


dovecot_fts_xapian: 1.5.4 -> 1.5.4b

Automatic update generated by nixpkgs-update tools. This update was made based on information from https://repology.org/metapackage/dovecot-fts-xapian/versions.
meta.description for dovecot_fts_xapian is: "Dovecot FTS plugin based on Xapian"
meta.homepage for dovecot_fts_xapian is: "https://github.com/grosjo/fts-xapian"
meta.changelog for dovecot_fts_xapian is: "https://github.com/grosjo/fts-xapian/releases"
Updates performed

Version update

To inspect upstream changes

Release on GitHub

Compare changes on GitHub

Impact

Checks done (click to expand)

built on NixOS

The tests defined in passthru.tests, if any, passed

0 of 0 passed binary check by having a zero exit code.

0 of 0 passed binary check by having the new version present in output.

found 1.5.4b with grep in /nix/store/1xppyrk3kz5yxackb66azl12dqcg4l9n-dovecot-fts-xapian-1.5.4b

found 1.5.4b in filename of file in /nix/store/1xppyrk3kz5yxackb66azl12dqcg4l9n-dovecot-fts-xapian-1.5.4b

Rebuild report (if merged into master) (click to expand)

2 total rebuild path(s)

1 package rebuild(s)

1 x86_64-linux rebuild(s)
1 x86_64-darwin rebuild(s)

First fifty rebuilds by attrpath
dovecot_fts_xapian

Instructions to test this update (click to expand)

Either download from Cachix:
nix-store -r /nix/store/1xppyrk3kz5yxackb66azl12dqcg4l9n-dovecot-fts-xapian-1.5.4b \
  --option binary-caches 'https://cache.nixos.org/ https://nix-community.cachix.org/' \
  --option trusted-public-keys '
  nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs=
  cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY=
  '

(The Cachix cache is only trusted for this store-path realization.)
For the Cachix download to work, your user must be in the trusted-users list or you can use sudo since root is effectively trusted.
Or, build yourself:
nix-build -A dovecot_fts_xapian https://github.com/r-ryantm/nixpkgs/archive/8c64bd5fca4199ea8c82b74a0f1afeb58642d005.tar.gz

After you've downloaded or built it, look at the files and if there are any, run the binaries:
ls -la /nix/store/1xppyrk3kz5yxackb66azl12dqcg4l9n-dovecot-fts-xapian-1.5.4b
ls -la /nix/store/1xppyrk3kz5yxackb66azl12dqcg4l9n-dovecot-fts-xapian-1.5.4b/bin

Pre-merge build results
We have automatically built all packages that will get rebuilt due to
this change.
This gives evidence on whether the upgrade will break dependent packages.
Note sometimes packages show up as failed to build independent of the
change, simply because they are already broken on the target branch.
Result of nixpkgs-review run on x86_64-linux 1

1 package built:

dovecot_fts_xapian

Maintainer pings
cc @ju1m @symphorien for testing.

@grosjo is this release a beta release or a normal release?

This is a normal release

Thanks. I tested it with https://gitlab.com/simple-nixos-mailserver/nixos-mailserver/-/merge_requests/270