Optimization + real CPU memory prank

Hey,
I made some changes to the project, the project is still not production ready but this is a good start
Size optimization:

Added to .gitignore .history and .vscode and removed them from the git repo
removed unused dependency as underscore (as a library, we want to be minimal size)
removed pranks/big-text-file

package size:

npm modules
before
after

with node_modules
6.6MB
3.07MB

without node_modules
3.96MB
512KB

CPU Load
The CPU load didn't really test any CPU load, it had a big impact on the memory, and had a minor impact on the event loop, but it's not really CPU intensive test.
Basically we do want to have 3 different tests (each test should have minor as possible impact on the others)

CPU load
Memory load
Event loop block

I changed the CPU test to be memory light and none blocking event loop (it uses fork, the child process is fully blocked)
but now, it actually loads the CPU for 95-100%
The start is getting duration argument and now stop will actually stop the test
There's one thing I didn't change on the class which is this: (only added the comment)
constructor(expressApp) {
	// @todo, not to do this
	super(...arguments);
}

in my opinion, this is a bad practice. I didn't change that because I wasn't sure what args the constructor gets and also the super class isn't used at all
Anyway, let's take this project to good places!

Just noticed a bug I have
	stop() {
		this.forks.forEach((f) => {
			f.kill("SIGKILL");
		});
		this.forks = [];
	}

should also clear the existing timeout.
clearTimeout(this.stopTimeout)

@KromDaniel So glad you join the battle
Short context - this project was developed during a flight with a goal to quickly benchmark customer's deployment. Back then 'best practices' weren't a concern but based on feedback that I received in the last few days - it seems like a package that can appeal to many. The overall topics is trendy and the package can be communicated as a new type of testing, a very important type as it checks the overall app resiliency, and can be even automated to an extent so people get an immediate benchmark with result without even writing a line. Optionally with a sleek UI or even an assertion language expect(error.unhandled).to.not.crash.process... We can brainstorm it also by phone to feel whether we're passionate to take it to the next step
The overall PR + the remarks absolutely resonate with me, loved the observation of separating cpu vs memory vs event loop! There are more than a few other fixes we should perform (minor note: some crypto methods run on the libuv thread pool and don't block the loop), two questions:

You deleted the .txt file but it's used in the memory prank as well, did you modify the memory prank? not a big issue, I can overload the memory with randomstring
The cpu prank start is now not async and gets a duration param. This deviates from the original design (maybe for a good reason, trying to find out) which promote separation of the prank from the scheduler so the duration will be determined by the scheduler which will emit a stop event to the prank. The upside of the original design is that since the prank is not aware of duration/scheduling logic, one can mix any prank with any scheduling type. With that context in mind, do you see a reason to pass a duration param?

Yo @i0natan
some crypto methods run on the libuv thread pool and don't block the loop ->  so we won't use it at the event-loop-block test  notice I changed it to be createCipherIv instead of createCipher because it's deprecated, anyway, it does load some CPU
About the questions:

I didn't modify the memory test, probably need to add unit tests later so stuff like that could flow up easily
It's fine, I didn't go to deep about how does the scheduler work, I wrote it as independent module that accepts duration and performs high CPU usage for that duration, if there's a controller that decides about timing then this parameter should be optional

Memory test - I'll perform the necessary adjustment, we don't need a text file in our project. yeah, 1 plain unit test per prank would have caught this
CPU scheduling - there's no need to pass duration, you just specify a scheduler which emits start and stop event to the prank, so you code right now is fully compliant only we need to make the start method async + drop the duration param. You wanna take it or I do?

I'll do it, thanks

closing this PR and will open new one after update

@KromDaniel
Cool, just to emphasize: the scheduler object was really needed, it allows doing pranks in various timings fashion like:

DelayedSchedule - do something once, but after the process is live for 10 sec
Spikes - does our monitoring system when the CPU spikes every 30 seconds and not constantly (call start() for few sec, stop then sleep for 30 sec)
Immediate - make something bad before even the app loads (will the daemon keep on restarting? will our monitoring sys catch that?)

@i0natan  reopened :) I think we can hard merge the current package.json and ignore mine

@KromDaniel I'll merge this on Monday, working now on that weird Sunday event :]

Is there any plan to take this project to next level as its really cool. @goldbergyoni ??


Define JSON Pointer alternative syntax

#183 uses JSON Pointer to discover fixed paths within a resource. The syntax /foo/bar clashes with JSON Path style syntax .foo["bar"]. We notionally want to align on the scope of JSON Pointer with the syntax of JSON Path.
Refs #177

While I do not want to define the grammar in the semantics of a specific implementation. I think we can likely define a subset of allowable nodes https://pkg.go.dev/k8s.io/client-go/util/jsonpath#NodeType to achieve the desired behavior.
If we parse the pattern and then reject expressions that use nodes other than:

Text
Array
List
Field
Identifier

I need to verify the semantics of each node type, but the remaining nodes are more clearly out of scope:

Filter
Int
Float
Wildcard
Recursive
Union
Bool

AST FTW

Folded a proposal into #183

Resolved in #183


Delayed resources called more than once with Chef <= 12.4

Cookbook version
compat_resource 12.10.7
Chef-client version
Initially seen with Chef 12.4.1
Test-kitchen shows its an issue with 12.0.x through and including
12.4.x. 12.5.x and above seem to be fine.
Platform Details
CentOS 6.7 initially. Test-kitchen with Ubuntu 14.04
Scenario:

A cookbook dependency on compat_resource
A delayed resource notification
A call to a <12.5 style LWRP that sets use_inline_resources.

The delayed resource is invoked twice. Once at the end of the LWRP and
once at the end of the Chef run.
Remove the dependency on compat_resource and the delayed resource
is invoked only once at the end of the Chef run, which is what I expect.
In my specific real world example (not shown), the delayed resource is
something that I can only have called once per Chef run.
Steps to Reproduce:
I have a test-kitchen set up example here:
https://github.com/wwilfinger/multi_delayed_call_mwe
In short
# metadata.rb
depends 'compat_resource'

# providers/default.rb
use_inline_resources

action :run do
end

# resources/default.rb
actions :run
default_action :run

attribute :name, :kind_of => String, :name_attribute => true

# recipes/default.rb

ruby_block "notifies_delayed_ruby_block" do
  block do
    Chef::Log.info "Notify a delayed resource"
  end
  action :run
  notifies :run, 'ruby_block[delayed_ruby_block]', :delayed
end

multi_delayed_call "custom_resource" do
end

ruby_block "delayed_ruby_block" do
  block do
    Chef::Log.info "I'm a delayed resource"
  end
  action :nothing
end

Expected Result:
Delayed resource should be invoked only once.
Actual Result:
Delayed resource is invoked once per LWRP with use_inline_resources.

I have all the Chef 12 releases from the Chef changelog
in the kitchen.yml. When depending on compat_resource, 12.0-12.4 fail,
12.5 and above are fine. If I comment out the depends compat_resource,
all Chef versions work.
Thanks for your time!

TK setup is useful -- confirmed this still fails with 12.14.0 release of this cookbook

still an issue in the 12.14.2 release of this cookbook.
the chef-solo provisioner in TK doesn't matter, it still fails with chef-zero
the use_inline_resource LWRP is important -- a custom resource doesn't fail in the same way

I have observed infinite recursion upon triggering delayed resource on Windows Chef 12.3
The recipe is:
windows_task 'reinstall-chef-client' do
  command command
  run_level :highest
  frequency :once
  start_time lazy { (Time.now + (node['hc_chef_client']['restart_delay'] * 60)).localtime.strftime('%H:%M') }
  action :nothing
  notifies :write, 'log[Scheduled reinstall-chef-client]', :immediately
end

log 'Scheduled reinstall-chef-client' do
  message 'Scheduled reinstall-chef-client'
  level :info
  action :nothing
end

template "#{Chef::Config[:file_cache_path]}/reinstall_chef.ps1" do
  source 'reinstall_chef.ps1.erb'
  variables(
    msi_path: "#{Chef::Config[:file_cache_path]}\\#{base_package_filename}",
    msi_log: "#{node['chef_client']['log_dir']}\\#{base_package_filename}.log"
  )
  notifies :create, 'windows_task[reinstall-chef-client]', :delayed
end

It converges as below:
Starting Chef Client, version 12.3.0
resolving cookbooks for run list: ["test_inf_resursion"]
Synchronizing Cookbooks:
  - chef_handler
  - powershell
  - windows
  - ms_dotnet
  - test_inf_resursion
  - compat_resource
Compiling Cookbooks...
[2016-09-16T16:35:58+00:00] WARN: Cloning resource attributes for windows_task[reinstall-chef-client] from prior resourc
e (CHEF-3694)
[2016-09-16T16:35:58+00:00] WARN: Previous windows_task[reinstall-chef-client]: C:/chef/cache/cookbooks/test_inf_resursi
on/recipes/default.rb:9:in `from_file'
[2016-09-16T16:35:58+00:00] WARN: Current  windows_task[reinstall-chef-client]: C:/chef/cache/cookbooks/test_inf_resursi
on/recipes/create.rb:18:in `from_file'
Converging 6 resources

...

 * windows_task[reinstall-chef-client] action create
   * windows_task[reinstall-chef-client] action create
     * windows_task[reinstall-chef-client] action create
       * windows_task[reinstall-chef-client] action create
         * windows_task[reinstall-chef-client] action create
           * windows_task[reinstall-chef-client] action create
             * windows_task[reinstall-chef-client] action create
               * windows_task[reinstall-chef-client] action create
                 * windows_task[reinstall-chef-client] action create
                   * windows_task[reinstall-chef-client] action create
                     * windows_task[reinstall-chef-client] action create
                       * windows_task[reinstall-chef-client] action create
                         * windows_task[reinstall-chef-client] action create
                           * windows_task[reinstall-chef-client] action create
                             * windows_task[reinstall-chef-client] action create


v0.0.30 release

Issue #, if available:
Description of changes: v0.0.30 release
By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.

/approve


Unread badge for WhatsApp in MacOS Catalina missing

In the system preferences Franz is allowed to show badge notifications.
In Franz itself under settings, I have set "Show unread messages if notifications are disabled" to true.
For the WhatsApp service, notifications and sound are both enabled.
Yet I only hear a sound when I receive a new message, but no badge within the sidebar of Franz nor a badge at the app icon in my dock.
Franz version is 5.5.0 (<IP_ADDRESS>2) running on Mac OS Catalina 10.15.5.
Also, I have disabled and enabled all settings, cleared the cache, deleted the partitions folder, deleted the service and activated it again - yet, nothing changes so badges would be shown.

Same problem here, it seems like I had the same issue on Windows 10.

got this issue in mac and win 10 also

I have the exact opposite problem - WhatsApp is now showing one unread message all the time, started today after I got a service update message and reloaded.

Seems that it just got fixed! Both the notification bubble missing and the window not being full-sized.
Thanks! :D

I had the same problem, but now I see a new one here https://github.com/meetfranz/franz/issues/1861


Dominant language detection does not work very well (at least for js project)

Title says it all:

https://github.com/mrdoob/three.js/ gets detected as shell (should be javascript)
same thing for https://github.com/AnalyticalGraphicsInc/cesium/
same thing for https://github.com/iTowns/itowns/

Thanks for the project, it's a very cool idea :-)

Javascript is not handled yet. So it only accounted for the lines written in shell.
I just need to find a cool ASCII logo for Javascript...

@o2sh
`............................`
`----------------------------.
`----------------------------.
`----------------------------.
`----------------------------.
`----------------------------.
`-------------::-----:/:-----.
`------------sMM+--yNMMMMh:--.
`------------sMM+-oMMs:/s+---.
`------------sMM+-:NMNhs/----.
`------------sMM+---ohmMMNs--.
`--------:/--sMM+--+:--:hMM/-.
`-------oMMhhNMN:-dMMdhhNMm:-.
`--------/shhyo:---/syhhy+---.
`............................`

It's a good start.
@autra: You can try again, but it should work now

Sorry, I didn't know you wanted to do it. There is an open issue #2 where you can submit better ASCII logos...or add new languages.
I used the logo of @sdushantha and customized it a bit.
Glad you like it :)


Drop PyZE and move to Renault-API dependency

This PR closes #70 and #56

There is one last problem to solve: schedules update is not implemented in renault-api!
        charge_schedules = await vehicle.get_charging_settings()
        charge_schedules.update(schedules)


Check missing headers

This PR adds a script that compares an existing install directory's include dir vs src/serac. The script will be called in a CI job if CHECK_MISSING_HEADERS is "yes".
Fixes #595

When doing some testing I found a header that may be missing:
Header 'check_gradient.hpp' not found. See CMakeLists.txt in /usr/WS2/meemee/serac/repo/src/serac/numerics/functional/tests

Codecov Report

Merging #976 (3d2508e) into develop (eca3c8e) will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff            @@
##           develop     #976   +/-   ##
========================================
  Coverage    89.59%   89.59%
========================================
  Files          142      142
  Lines        10997    10997
========================================
  Hits          9853     9853
  Misses        1144     1144

:mega: We’re building smart automated test selection to slash your CI/CD build times. Learn more

its failing but that's expected due to this header that isn't in the install https://lc.llnl.gov/gitlab/smith/serac/-/jobs/1372592#L6888

@white238 , can you take a look at this?

Please fix whatever missing headers in this PR.

@jamiebramwell @white238 ready for another review


change(scan): Update docs for the separated scanner

Once the scanner is separated from zebrad, reflect the changes in the docs:

https://github.com/zcashfoundation/zebra/tree/ce875f512b537d1404b64a8860815b146fe2096e/book/src/user/shielded-scan.md, and
https://github.com/zcashfoundation/zebra/tree/ce875f512b537d1404b64a8860815b146fe2096e/book/src/user/shielded-scan-grpc-server.md.

A duplicate of #8586.


Allow reducing purerlex's logging via configuration

This allows a user to reduce purerlex's info logging by adding purerlex: [quiet: true] to their mix project config. Let me know if this functionality would be of interest to you.
I personally prefer to see no logging unless the spago compiler is taking an action.

Yeah, I've thought this through now and it's an ok change. I'd like the default to be talkative until we're confident it just works as expected. I'm thinking we should allow configuring the @file_paths we look for purs files in too, to avoid the "no purs files matching pattern" kind of warnings.

Let's allow configuring file_paths too and then we'll release it


Support is not chosen

Preparation

[X] I tested the latest release
[X] I looked at other issues (even the closed ones)
[X] I read the Troubleshooting Guide

FGO server
NA
FGA build number
1669
Describe the bug
Game area mode is on "Xperia".
In the support screen the app doesn't pick the supports; it doesn't even try. It jumps straight into card recognition as you can see in the video. Once it is in the battle it functions without problems (ignore the scuffed run).
One obvious problem are the notches, left and right. Compared to say Samsung I can't find anything in Sony that would force fullscreen for FGO. I assume I could format the detection area in FGA settings to match with mine but I'm not sure what size I would have to choose for this.
Video
https://drive.google.com/file/d/1Wqac0zK5lhl8cctcrk1YEN8YGxBtCBYz/view?usp=sharing
Device model
Sony Xperia 5 II
Android version
12
Screen size
2520x1080
RAM
8GB

Please check #1000 and try Custom Game Area Mode, I might remove Xperia mode since there's no consistent black bar behavior.

I checked that one and #845 before but neither provide a good starting point how to fine-tune the Custom mode to fit your device (hence the question of the size).
Amateurish fiddling got me some reaction with L:34, R:50, T:0, B:0 but it only amounted to FGA scrolling through the support but not actually picking one or transitioning to battle. The same settings do not work within battle either.

Here's a screenshot for the notch size.

when i try open debug mode i see it just scan in the right of the screen and it cannot choice support in server NA. although it run pretty good on servers JP

It is my screenshot

How did you come up with those numbers?
You just needed to measure the width of the black bars on the sides. That's 63 pixels on the left and 189 on the right.

Closing since there's no reaction.


rmi by image id

Issue Description
Type: feature request
currently, we support delete image by name only, which provides ability of untagging when there are many images with same id. Thus we can't delete image just one step in some situations. I think provide a new feature for deleting image by image id is reasonable.
Describe what feature you want
[root@jiangnan001 ~]# sealer images
+----------------------------------+----------------------------------------------------------------------+
|             IMAGE ID             |                              IMAGE NAME                              |
+----------------------------------+----------------------------------------------------------------------+
| 8233ad647e35d6ec32d98efe45467cb5 | registry.cn-hongkong.aliyuncs.com/sealyun/kubernetes-amd64-1:v1.19.9 |
| 8233ad647e35d6ec32d98efe45467cb5 | registry.cn-hongkong.aliyuncs.com/sealyun/kubernetes-amd64:v1.19.9   |

sealer rmi 8233ad647e35d6ec32d98efe45467cb5 (failed, there are more than one image)
sealer rmi 8233ad647e35d6ec32d98efe45467cb5 -f (success)
Additional context
Add any other context or screenshots about the feature request here.

I think the print image shloud be more info, ex size ,create time and Metadata.

+1


Add/delete documents to/from existing vector store

Is there a way to update  the index files (.pkl and .faiss) with new documents (they can be put in a separate folder) rather than starting the ingest.py over with all the files?

@dartpain Is this something that can be done? If so, I'll start reading exploring how to implement it.

I think appending to FAISS index is simple enough but the major challenge is in deletion i think since each chunk or text piece has its own ID so makes it a bit more challenging but i think it could be done. for more reference https://github.com/hwchase17/langchain/blob/master/langchain/vectorstores/faiss.py

hi @dartpain,
I would like to work on this.
i want to use this : https://github.com/langchain-ai/langchain/blob/683f4a93b9b08f7543ce43aae9f277b670e8fb1c/libs/langchain/langchain/vectorstores/faiss.py#L479 to delete.
any comments?

Please try, think it can be beneficial.
Oncle we have settings up and running in our app, the will be a vectorstore menu with those extra actions


Best way to serialize "connect info"?

Currently we use the following JSON encoding to allow clients to "join a federation":
{"members":[[0,"wss://fm-signet.sirion.io:443"]],"max_evil":0}

This basically just JSON-encodes the parameters to WsFederationApi::new(). Once a client has a WsFederationApi, it can download configs from all federation servers?
What is the optimal way to encode this information?

max_evil can be derived from the peer count via hbbft::util::max_faulty(), so that really doesn't need to be included. (could be removed from WsFederationApi::new() as well ...
The 0 in [0,"wss://fm-signet.sirion.io:443"] is just a "peer id" which can also be implied by order of the array.
So really all we need is the websocket URLs ...

Might be easier to copy/paste if we bech32m-encoded it? Maybe the error-correcting would help, too? But then it's harder to inspect it visually...

bech32 encoding would make the QR bigger. An interesting option would be a custom encoding that compatible with alphanumeric QR encoding that only needs ~5.5bit/char. e.g.
WSS://FM-SIGNET.SIRION.IO:443+WSS://FOO.BAR:443+WSS://TESTMINT.XYZ:443+WSS://TESTMINT.COM:443

vs. ["wss://fm-signet.sirion.io:443","wss://foo.bar:443","wss://testmint.xyz:443","wss://testmint.com:443"]

Ideally, joining a federation should be as simple as scanning and trusting a cryptographic peer id (hash/multihash of a public key) via an out-of-bounds mechanism from a guardian you trust. So the QR code would just need to be the size of the hash function used. Any other configuration data (even connection endpoints) could be fetched (and verified) using the peer id from other places (e.g. a DHT). See my thoughts in https://github.com/fedimint/fedimint/issues/744.

I also wonder if the real world use of Fedimint would require that at least one guardian approves/peers a member using their "peer id" as well? I'm not sure many guardians would want the federation they are responsible for to be joinable by anyone who has the "Federation Code". So eventually the onboarding/peering process needs to be a interactive protocol...

I'm not sure many guardians would want the federation they are responsible for to be joinable by anyone who has the "Federation Code" (think of DoS, Sybil attacks, privacy leaks, ...).

Just in case there is some confusion, Fedimint isn't a p2p protocol, there are two classes of participants:

Guardians: also called federation members in some older documents or peers in the server code. They control the multisig wallet and issue e-cash.
Users: they just deposit BTC and transact in e-cash tokens, but don't run the federation.

Guardians can not join at will. Currently they are a fixed set defined at setup. Eventually there could be a dynamic join mechanism where guardians can add/remove others through a vote.
Users on the other hand can join at will but don't have any responsibilities, so it's not too bad if anyone can join. The privacy properties of the federation also make it impossible to enforce any access restrictions. The best we can do is hiding the connect QR code in apps if the federation is closed and only let guardians share the join QR code.

Sure. But I was wondering if a fedimint federation could inherit some of the robustness properties of a p2p application so that a minority subset of guardians could temporarily leave (unavailable, disconnected) while the remaining guardians can still drive forward consensus due to threshold signatures. And if you employ an authenticated pubsub (Publish/Subscribe) protocol for guardian message exchange, not all guardians need to maintain a stable connection to all other guardians.

I was wondering if a fedimint federation could inherit some of the robustness properties of a p2p application so that a minority subset of guardians could temporarily leave (unavailable, disconnected) while the remaining guardians can still drive forward consensus due to threshold signatures

That's exactly the goal :smiley: I think we achieve it as long as everyone has a public IP with the current network stack. libp2p is certainly be interesting to achieve resilience under less ideal network conditions.
I just wanted to make sure we are on the same page since "Sybil attacks, privacy leaks" read like you could mean guardians joining at will.

I just wanted to make sure we are on the same page since "Sybil attacks, privacy leaks" read like you could mean guardians joining at will.

No, more like random users could cause (high) costs for the federation guardians? Like a lot of unnecessary e-cash transactions to try a denial-of-service against the federation. Or easily figure out which lightning gateways are used by the federation (peg-in and pay ln-invoice). A lot of this stuff can be mitigated if only authenticated users can join.

Yeah, unfortunately naive implementations of authentication would break privacy. We'd need a scheme that authenticates each request but doesn't allow correlation of different requests of the same user but still allows detecting DoS. That sounds like a really fancy cryptographic scheme if it can exist at all under acceptable trust assumptions (it would certainly weaken privacy which is currently information theoretical, not even an attacker with infinite compute and access to all guardians can break it).

but doesn't allow correlation of different requests of the same user

But this means fedimint would have a hard requirement on Tor or I2P, else that correlation can always be done via IP address of the request.

But this means fedimint would have a hard requirement on Tor or I2P, else that correlation can always be done via IP address of the request.

Yes, that's tracked in issue #391.


Fix for 'TypeError: float argument required, not str'

We were trying to cast "scale" to a string then print it as a float.

Here is an example for reproducing the error which is fixed here:
ocropus-gpageseg --minscale 12 --scale 10 tests/testpage.png
INFO:
INFO:  ########## /usr/local/bin/ocropus-gpageseg --minscale 12 --scale 10 tes
INFO:
INFO:  tests/testpage.png
INFO:  scale 10.0
Traceback (most recent call last):
  File "/usr/local/bin/ocropus-gpageseg", line 423, in safe_process1
    process1(job)
  File "/usr/local/bin/ocropus-gpageseg", line 373, in process1
    print_error("%s: scale (%g) less than --minscale; skipping\n"%(fname,str(scale)))
TypeError: float argument required, not str

Why cast scale to str in the first place? The point of using "%g" % (123) or similar is to do explicit to-string conversion.
# Why this
print_error("%s: scale (%s) less than --minscale; skipping\n"%(fname,str(scale)))
# instead of this
print_error("%s: scale (%g) less than --minscale; skipping\n"%(fname,scale))

This happens in quite a few places:
ag -l 'print.*strc?\('
ocropus-nlbin
ocropus-gpageseg
ocropus-rpred
ocrolib/toplevel.py

But that is a different issue and should be fixed in a new PR.

Thank you very much, @jmorrey, for reporting and fixing the issue with this pull request!


Authentication with the annotation platform (signup + login)

This feature has been merged to the develop branch. It will not be merged to the main branch since we will separate the annotation platform from crowdsourcing Ayat.


Now What....?

I've walked through the steps. It's installed.
Now how do I create users?
I don't have a clue how to operate this in a non-gui environment, and so far have found 0 relevant resources online.
Help?

Hi @mecizeldec, I'm sorry. Couldn't respond in time.
Users can be created using the default "Active Directory Users and Computers"-program. This is automaticly installed on all editions of Windows Server if the "Active Directory"-role has been installed.
For the normal editions of Windows I currently recommend following this tutorial: https://win10faq.com/active-directory-users-computers-get-use/
It explains the installation and the basic usage of the "Active Directory Users and Computers"-program.
Please could you let me know if this solves your issue. I haven't had a chance to test if the current code works with the latest versions of Raspbian.


Add Yarn version updates to the ci images

Description
Add Yarn version updates to the ci images
Issues Resolved
#3210
By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.
For more information on following Developer Certificate of Origin and signing off your commits, please check here.

Codecov Report

Merging #3212 (c9b4748) into main (ac7bd8f) will decrease coverage by 0.31%.
The diff coverage is n/a.

:mega: This organization is not using Codecov’s GitHub App Integration. We recommend you install it so Codecov can continue to function properly for your repositories. Learn more
@@            Coverage Diff             @@
##             main    #3212      +/-   ##
==========================================
- Coverage   93.20%   92.90%   -0.31%
==========================================
  Files         167      167
  Lines        4622     4622
==========================================
- Hits         4308     4294      -14
- Misses        314      328      +14

Impacted Files
Coverage Δ

src/system/temporary_directory.py
64.44% <0.00%> (-28.89%)
:arrow_down:

src/system/os.py
94.73% <0.00%> (-5.27%)
:arrow_down:

Help us with your feedback. Take ten seconds to tell us how you rate us. Have a feature suggestion? Share it here.


Graph labels

I want vertical labels to the left side and also i want x and y both axis
can you please help me to achieve this?

Hi can u please help me t o achieve this?

Hi, can you describe what behaviour you are expecting?
You have the option of setting Y axis values as well, just have to enable from Builder.

Hi
i want Y axis value on left side which is crrently on right side of graph
and currently it has only vertical guide line i want horizontal guideline too.

Hi, I can work on the vertical guidelines soon, but adding the labels on the left side will require considerable dev effort and refactoring, which I will not be able to pick up soon.

https://github.com/swapnil1104/CurveGraphView/pull/7
@riddhee  working on horizontal guidelines, please check the documentation in the PR to see if this caters to your use case.

Hi
Thank you very much for your support
i really appreciate it
i will check and let you know

will you please share your email so i can share a reference image with u?

Please add the image here itself, or mail me at<EMAIL_ADDRESS>

i want this type of graph

Hi, having a level of customizability this high won't be possible in the current scope, if you can break it down and add smaller feature requests I can pick them up instead.


ModuleNotFoundError: No module named 'tomllib'

Describe the bug
When I run tests in Travis CI against Python3.11-dev I get the following error:
$ coverage run --branch pedantic/tests/tests_main.py

Traceback (most recent call last):

  File "/home/travis/virtualenv/python3.11-dev/bin/coverage", line 5, in <module>

    from coverage.cmdline import main

    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

  File "/home/travis/virtualenv/python3.11-dev/lib/python3.11/site-packages/coverage/__init__.py", line 15, in <module>

    from coverage.control import Coverage, process_startup

    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

  File "/home/travis/virtualenv/python3.11-dev/lib/python3.11/site-packages/coverage/control.py", line 20, in <module>

    from coverage.collector import Collector, CTracer

    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

  File "/home/travis/virtualenv/python3.11-dev/lib/python3.11/site-packages/coverage/collector.py", line 10, in <module>

    from coverage.config import CoverageConfig

    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

  File "/home/travis/virtualenv/python3.11-dev/lib/python3.11/site-packages/coverage/config.py", line 16, in <module>

    from coverage.tomlconfig import TomlConfigParser, TomlDecodeError

    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

  File "/home/travis/virtualenv/python3.11-dev/lib/python3.11/site-packages/coverage/tomlconfig.py", line 16, in <module>

    import tomllib      # pylint: disable=import-error

    ^^^^^^^^^^^^^^

ModuleNotFoundError: No module named 'tomllib'

To Reproduce
How can we reproduce the problem?  Please be specific. Don't link to a failing CI job. Answer the questions below:

What version of Python are you using? Python 3.11.0a3+
What version of coverage.py shows the problem? 6.4
What code shows the problem? Does not matter.
What commands did you run? coverage run --branch pedantic/tests/tests_main.py

Expected behavior
Run tests with coverage.
Additional context
Nothing.

Hmm, we switched to use tomllib since it's in 3.11, but we check for version >= 3.11, and tomllib was added in 3.11.0a7.  You are running 3.11.0a3+.  Can you update to a more recent 3.11?  3.11.0b2 is now out.

Thank you for your fast reply! Unfortunately, this in the hands of Travis CI. So I cannot do anything and I'll wait for the newer version at Travis.

This is now released as part of coverage 6.4.1.

This is now released as part of coverage 6.4.1.

Unfortunately, this in the hands of Travis CI. So I cannot do anything and I'll wait for the newer version at Travis.

I've asked Travis CI to update their 6-month-old 3.11-dev development branch:
https://travis-ci.community/t/update-python-3-11-dev/13039

And Travis CI have now updated 3.11-dev and it now points to:
3.11.0b3+ (heads/3.11:fae93ab, Jun  3 2022, 16:03:01) [GCC 9.3.0]

:tada:
https://travis-ci.community/t/update-python-3-11-dev/13039/2?u=hugovk

Thank you very much @hugovk!


Error with -c command

First, some background: I'm using npm as a task runner, and I'd been using watch but I heard chokidar is more efficient. I tried chokidar-cli installed both locally to my project and globally. Unfortunately I'm getting the following error:
> chokidar "dev" -c "npm run dev"

Watching "dev" ..
change:dev\Controller.js
Error when executing npm run dev
Error: spawn ENOENT
    at errnoException (child_process.js:1001:11)
    at Process.ChildProcess._handle.onexit (child_process.js:792:34)

I have no idea what this means. I tried other commands, such as cd .., but still get an error. Could anyone help me out?

Sorry, haven't seen the issues as I've not been watching the repo. I'm also using chokidar like that, but I haven't seen that error before.

I'm also seeing this issue. I am on Windows 8

Are you running chokidar from the root of the project where the package.json is?

@kimmobrunfeldt Yes. I tried running it in the project directory and from npm, same result. (I haven't updated and tried again since my original post, though.)

Could you try this with the newest version(1.0.1) ?

Closing because of inactivity.


Installation is being failed

For Windows, does one need to rewrite the make file?
This is my first time installing and using tippercanoe. My objective is to convert vector data into PMTiles. However, that is secondary.
It failed to build trippercane. I simply ran pip to install tippecanoe.
After the successful preparation of metadata, it was bouncing with errors.
Output:
Preparing metadata (pyproject.toml): finished with status 'done'
Building wheels for collected packages: tippecanoe
  Building wheel for tippecanoe (pyproject.toml): started
  Building wheel for tippecanoe (pyproject.toml): finished with status 'error'
Failed to build tippecanoe

  error: subprocess-exited-with-error

  × Building wheel for tippecanoe (pyproject.toml) did not run successfully.
  │ exit code: 1
  ╰─> [23 lines of output]
      [C:\Users\AdminAnirban\AppData\Local\Temp\pip-build-env-vn9hc_k_\normal\Lib\site-packages\setuptools_scm\git.py:312](file:///C:/Users/AdminAnirban/AppData/Local/Temp/pip-build-env-vn9hc_k_/normal/Lib/site-packages/setuptools_scm/git.py:312): UserWarning: git archive did not support describe output
        warnings.warn("git archive did not support describe output")
      [C:\Users\AdminAnirban\AppData\Local\Temp\pip-build-env-vn9hc_k_\normal\Lib\site-packages\setuptools_scm\git.py:331](file:///C:/Users/AdminAnirban/AppData/Local/Temp/pip-build-env-vn9hc_k_/normal/Lib/site-packages/setuptools_scm/git.py:331): UserWarning: unprocessed git archival found (no export subst applied)
        warnings.warn("unprocessed git archival found (no export subst applied)")
      *** scikit-build-core 0.9.8 using CMake 3.30.0 (wheel)
      2024-07-04 21:06:29,946 - scikit_build_core - WARNING - No license files found, set wheel.license-files to [] to suppress this warning
      *** Configuring CMake...
      2024-07-04 21:06:30,033 - scikit_build_core - WARNING - Can't find a Python library, got libdir=None, ldlibrary=None, multiarch=None, masd=None
      loading initial cache file [C:\Users\ADMINA](file:///C:/Users/ADMINA)~1\AppData\Local\Temp\tmpnlgxh2rf\build\CMakeInit.txt
      -- Building for: NMake Makefiles
      CMake Error at CMakeLists.txt:3 (project):
        Running

         'nmake' '-?'

        failed with:

         no such file or directory

...

  note: This error originates from a subprocess, and is likely not a problem with pip.
  ERROR: Failed building wheel for tippecanoe
ERROR: ERROR: Failed to build installable wheels for some pyproject.toml based projects (tippecanoe)

Assist, please.
If something is amiss on my end, let me know.

There isn't a pre-built binary wheel on PyPI for Windows, so pip falls back to trying to build from the source wheel (the CMake build script is just running make on tippecanoe's default makefile). If tippecanoe supports building under MinGW using its current Makefile then I can get a pre-compiled binary wheel for Windows added.
For native builds using MSVC (instead of MinGW) from source on Windows, that would likely require tippecanoe to start using CMake.


Change of application key

According to this newsletter it will be neccessary to change the application key for b2. How do I do that with the special remote?

Run git annex enableremote $REMOTENAME appkey=... and git-annex will record a new app key in its config. For all the other repositories, git annex sync will update the new settings and make them available.


Update ember-template-lint to latest version.

Looks like ember-template-lint is up to v0.6.x. It would be rad to get this updated.

Hey @luketheobscure, thanks for the heads up. Will do.

If you're interested in learning about atom development we can pair on this together.

Thanks for the prompt, sorry it took a while to get round to. Published in v0.2.0.


Trying to run brod CLI

Hi,
I think I am misunderstanding the docs to properly build the CLI.
Running:  _build/brod_cli/rel/brod/bin/brod meta -b localhost as in the docs:
Usage: brod [COMMAND] [ARGS]

Commands:

  foreground              Start release with output to stdout
  remote_console          Connect remote shell to running node
  rpc [Mod [Fun [Args]]]] Run apply(Mod, Fun, Args) on running node
  eval [Exprs]            Run expressions on running node

ETC ETC

Looks like a regular erlang release.
I see there is a brod_cli script: _build/brod_cli/rel/brod/bin/brod_cli meta -b localhost
This time it looks like it is better as we are running an escript:
  in function  escript:run/2 (escript.erl, line 750)
  in call from escript:start/1 (escript.erl, line 277)
  in call from init:start_em/1
  in call from init:do_boot/3 ```

But it fails. Same output with `_build/brod_cli/bin/brod_cli`.

So, I guess I am missing something, or maybe there is an error in the build?

Thank you

Well,
I was trying to build that from a n elixir project dependencies directory. I guess I was missing some files. Sorry to bother you with that.
I will let the issue open if you want to support building the CLI tool from an elixir project, but as far as I am concerned this issue can be closed.
Thank you very much for brod :D

this seem to be an incomplete crash log.
  in function  escript:run/2 (escript.erl, line 750)
  in call from escript:start/1 (escript.erl, line 277)
  in call from init:start_em/1
  in call from init:do_boot/3

the escript  is built from rebar3 with below command:
rebar3 as brod_cli do compile,escriptize,release
Not sure how escriptization is done in your mix project?
maybe missing the non 'default' profile rebar dependency (docopt) ?

I was trying to build from the <elixir-project>/deps/brod directoy but it was incomplete. I had to add the docopt and jsone deps indeed. But it did not work. The problem is that basically elixir does not allow to define  {erl_opts, [{d, build_brod_cli}]} for a dependency (to my knowledge).
So I cloned the brod repository in a "tools" directory, checked the 3.15.6 tag out, and ran make brod-cli. The docopt an jsone are correctly pulled. The crc32cer library is also pulled but it is not found:
 ./_build/brod_cli/bin/brod_cli send --topic hello --key lol --value world --partition 0 -b localhost:29092
*** error:{badmatch,
              {error,
                  {producer_down,
                      {undef,
                          [{crc32cer,nif,

Same behaviour with ./_build/brod_cli/rel/brod/bin/brod_cli.

It's because escriptized executable file can not find the nif .so file (crc32cer_nif.so).
You can try to export set NIF_BIN_DIR environment variable to make it load.
e.g. export NIF_BIN_DIR=_build/brod_cli/rel/brod/lib/crc32cer-0.1.8/priv

It looks like it works @zmstone ! Thank you.
Is there something more I can configure for this value to be set in the release?

I will send a PR to avoid escriptizing it, and change the entrypoint script to a dash script (base on the current script/brod),
and load applications interactively so there should be no need to set environment variables anymore.

That would be great, thank you!

Thank you very uch @zmstone


Add support for vega and vega-lite

fixed in https://github.com/yuzutech/kroki-cli/commit/b802f44b870d62cdd631f2dfd6bd9af056778728


Responsiveness Design Bug

Description
The Write a Blog Post page under the community tab isn't responsive and a lot of content is getting clipped.
Screenshots
I have adjusted the viewport to 1295px. Please notice that the Archives tab on the navbar isn't visible.

Similarly, the content of the post isn't visible for some widths. You can refer to this link for a live demo.
Additionally, for screens with viewport <769px I think everything is just perfect.
Reproduction
Please remove the overflow-x: hidden; property on the body element just to visualize the clipped content. You will be able to notice a very long horizontal scrollbar.
Environment

Device: Laptop
OS: Windows10
Browser: Chrome and Firefox

Resolution

[ ] I would be interested in resolving this bug.

I can try..assign it to me

is this done or i can take this?

@Aakash2408 go ahead

I guess this issue is already resolved.

The issue is not resolved, a lot of content is getting cut off.

@Aakash2408 + @kgodey the issue is caused by our code blocks exceeding 100% of the page width. Some css is needed to adjust those.

@Aakash2408 @kgodey @zackkrida
I think an overflow-wrap: break-word might fix it, although I'm not a 100% certain. Maybe fidgeting around with overflow-x may also work.

Hi, @dhruvkb @nimishbongale I would like to work on this if this issue is still open. If you could please guide me on what all changes do I need to make and in which file?

Hi, @dhruvkb adding width: 85%; in .content fixes this issue but I don't know whether it will be an ideal fix.
Should I go ahead with this?

@Yashs911 any solution that needs a hardcoded arbitrary value is not ideal. I would recommend finding an alternative, cleaner solution to this.

@dhruvkb I am unable to find the files location is it in this repo or some other repo?

Which file are you looking for? All files are in this repo itself.

Hi, @dhruvkb according to the readme file this site is hosted on lektor and there is no installation command for windows. and I am currently using windows.

To run this on Windows, you have to set up a Python and Node.js environment. Both of those have instructions for Windows on their websites.

according to the readme file this site is hosted on lektor and there is no installation command for windows and I am currently using windows.

They do have a very gimmicky way of getting it installed.
On windows, please run the following command on powershell in admin mode:
(new-object net.webclient).DownloadString('https://www.getlektor.com/installer.py') | python

This should install lektor.
Please also make sure you have nodejs, python and pipenv installed to run the same like @dhruvkb mentioned.
You can use chocolatey to install these if you wish.
choco install python
choco install nodejs
pip install pipenv

I'm currently working on having lektor installed via chocolatey (and infact it can be, but it still needs to pass some verification testing)
Please refer to this issue:

https://github.com/lektor/lektor/issues/814#issuecomment-703309593

@nimishbongale I already have python 3.8 and node.js installed. How do I install pipenv? and which editor should I use for open source contribution? Currently, I am using sublime text and I also have anaconda and pycharm installed. I am not that familiar with setting a virtual environment.

@Yashs911
Alright. If you have nodejs and python 3.8 installed, all you would need is pip, and you could do pip install pipenv and it would work just fine.
As far as the editor is concerned, I prefer VSCode. But honestly, this should really not be a concern when it comes to Open Source Contribution. The commands that I talked of earlier have to be executed in the terminal and not via an IDE such as Pycharm. (although the project could be run inside an IDE)
There really not much about setting up a virtual environment. pipenv handles that pretty conveniently and can be installed from https://pypi.org/. Just make sure you have python, nodejs, lektor and pipenv in your path.

Hi guys,
Due to the inactivity, I've started to look into it. However, I'm unable to modify the css file because it's generated, if I modify it, it has no effect on restart. Maybe I don't have the necessary knowledge to handle these kind of environments, however if you would like to and if it's ok with the assignee, I can just put the solution over here in the comments.

@DDuplinszki if you want you can create a PR for this issue.

@Yashs911 may i work on this issue

@khushishikhu Currently no one is assigned so I guess you can work. But it would be better if you ask @dhruvkb.

@khushishikhu you may.

sure! @nimishbongale  @Yashs911

@nimishbongale can you please give me the reference file that i can do the css editing. As i have setup locally but unable to find the file for css editing.

@khushishikhu all the CSS files are in the webpack/sass folder. Most likely, the file you're looking for would be home-page.scss.

@dhruvkb I just found the solution and the file and if it's okay with @khushishikhu. Can I create a PR.

width:75%; will solve the problem

hi guys, I know it's closed and stuff. However, probably the best responsive solution would be to add min-width: 0;  min-height: 0;
It's due to the default settings of flexbox where these options on "auto". Even if no one will use this in this particular case, I felt like it would be useful to share that whenever you have this problem, you can try this solution as well.


DRAFT: Minor version update to Issue Credential V2 to enable issuing multiple VCs

Signed-off-by: Stephen Curran<EMAIL_ADDRESS>

Issues on this to be discussed before we can finalize:

Do we allow the array of attachments to be used to issue multiple different credentials in one message?  This is specifically precluded in the 2.0 version, and may not be valid for some VC formats.
With AnonCreds, is it a requirement that there be an offer-credential message per issuance?  The Offer is (according to the current RFC) to require the issuer to make a commitment to the credential to be issued.  I'm not sure if that is a business or cryptographic commitment, and in either case, whether it is necessary/recommended that it be used.
Is the repeated request-credential message required for each issuance for all/some VC formats?
Combining points 2 and 3, should we have first message after an issue-credential message with the more_available flag set to true being one or any of these, by VC format:

offer-credential
request-credential
issue-credential

Should we have an explicit field in the request-credential message an indicator that the Holder will accept multiple credentials?

To decide on these, we need to starting with defining the per issuance sequence of messages that are necessary per VC format.

This is an intriguing idea. Do we have any data about how compelling the use case is? Are we motivated to pursue it primarily because we're trying to decrease the chattiness of running the protocol multiple times? (If yes, I want to be sure we've analyzed correctly, not conflated chattiness with UX clumsiness. It would be easy to present multiple issuances as one interaction from a UX POV, without modifying the protocol at all...)
With the current data structures, I don't think there is a way to enforce the idea that multiple credentials should represent different claims (two different college degrees) versus identical claims but different formats (same degree, in cred format X v1 verses cred format X v2). And it also doesn't crisply prevent another misuse, which is batch issuance (different claims for different holders).
My gut is that we should change the message structure more deeply to accommodate different claimsets and to keep the batch abuse from happening. One way we could do that would be to start linking "claimsets" and attachments. A claimset would be the pieces of info we propose to send in one credential -- and we reference an attachment in a way that makes it clear which claimset it refers to. ALL of the claimsets in the protocol would have to be intended for the same holder, with the same terms of service and the same financial payment behaviors if they entailed a cost. That would prevent the batch abuse. But now you could explicitly understand which attachment addressed which subset of the union of all claims.
It's not clear how we deal with a partial acceptance; is this a take-it-all-or-leave-it-all offer and issuance? Or can the issuer offer 7 creds, and the holder accepts 4?
I'm not sure what consequences this has for a ZKP-oriented cred. If we're using link secrets, presumably we bind to the same one for every cred that's issued. If we're using Mattr's suggested replacement for link secrets, does the same binding apply to all -- and does that work, cryptographically?

@dhh1128 -- the primary motivation is to deal with UX clumsiness -- being able to tell the wallet ahead of time that there are multiple credentials of the same type to be issued -- if you want them, and letting the user decide what to do.
With the current data structures, I agree you can't force the credentials to be the same content/different format -- but that's the stated direction of the RFC. It literally says that you have to do that to meet the spec.  We discussed this on the Aries WG call, and while we think considering allowing the use of multiple attachments as a way to do multiple issuing is interesting, we don't think we're ready for single protocol, multiple issuances just using arrays of attachments in the existing message sequence.
I don't recall any past discussions about abuse in the form of different claims for different holders. Do we really think that this applies here differently from the existing protocol?
Regards the all or none -- I added the note about the Holder using a Problem Report to say "No mas" and to stop the flow. Up to the Holder agent to figure out how to use that.
Nathan feels fairly sure that in Indy we have to have a request for each issuance, but not an offer. As such, we think the right thing is to have a "request-credential" / "issue-credential" loop.  We could make the loop VC format specific so that it could be just "issue-credential" repeated.

Based on the comment stream above, I have two strong opinions:

This is not a minor change. It deserves a major version number increment. It is fundamentally changing the logic of the interaction, and the mental model for what it means to ask for credential(s) and receive it-or-them. In the revision, we should adjust the data structures as much as we need, to elegantly represent what we want. We should not seek to minimize changes to the message structures.
The major reason for me taking this position is that I don't think people should be required to support a mental model and a style of data processing that expects a multi issuance -- just so they can get single issuance support.
So in terms of concrete feedback on this PR, I'd say that I believe this should be 3.0 of the protocol, not 2.1. And as I said above, I think we should adjust the data structures more aggressively, so it's clear which attachment has which type of cred.

As a general rule and as a community, we are associating a protocol with a UX experience too strongly. There is nothing that says a UX workflow needs to map 1:1 onto a protocol instance. We can have one UX that encompasses multiple protocol instances (e.g., issue cred and then turn around and use it to prove something; pay for a cred and issue it; etc). We can adjust protocols for UX reasons -- but we shouldn't feel compelled to do so. We could also write a UX, based on the current protocol, that simply expects to represent to a user the unfolding of multiple credential issuances in parallel.
I'm not recommending that we tell people they must implement a fancy, non-1:1 mapping for this particular problem. It may well be that it's smart to create a new protocol (or a significantly updated one) so that UIs in mobile apps only have to think about one protocol being in progress when they pop up a notification message or a question. But I am nervous about enthroning that assumption too strongly in our thinking, in general. We all need to be very clear that when we are writing a protocol, we are NOT writing UI. They are separable concerns, and they need to stay that way.

@dhh1128 Daniel, you said "It would be easy to present multiple issuances as one interaction from a UX POV, without modifying the protocol at all.".  Exactly how are you proposing this be done?

Exactly how are you proposing this be done?

I'm not proposing, exactly. As I said above, maybe in this case it's worth revising the protocol. Rather, I was just observing that there doesn't have to be a 1:1 correspondence between the arrival of credential offers and the UI that prompts about such an arrival.
The way it could be done is more or less how it could be done in natural human interactions. Imagine you are your wife's agent and you are going to check the mail. She gets three letters from the university where she studied. Letter 1 says, "We've got a digital version of your Bachelor's Degree in Mathematics that we'd like to give you." Letter 2 says, "We've got a digital version of your Master's Degree in Discrete Mathematics that we'd like to give you." Letter 3 says, "We've got a digital version of your PhD in Cryptography that we'd like to give you."
Now, you can walk over to the table where your brilliant wife is having dinner, and you can lay out those letters one at a time in serial:
"You have an offer of a digital bachelor's degree. What would you like to do about it?"
--> "Great. Let's ask them to proceed."
--> Do the work as her agent to make that happen. Then come back to the table.
"You have an offer of a digital master's degree. What would you like to do about it?"
--> "Great. Let's ask them to proceed."
--> Do the work as her agent to make that happen. Then come back to the table.
"You have an offer of a digital PhD. What would you like to do about it?"
--> "Great. Let's ask them to proceed."
--> Do the work as her agent to make that happen. Then come back to the table.

But I think most human agents would take a different tack:
"You got 3 offers for digital degrees. Which ones would you like to accept?"
-->"All 3."
-->Agent goes away and files 3 sets of paperwork, pays fees 3 times, etc.

In the latter case, 3 separate issuance protocols are running, and they don't have to be changed in any way. But the agent chooses to combine the UX of all 3 into a single approval ritual with the user. Once the approval is given, the 3 issuance protocols continue to unfold independently. They can succeed or err out independently. They each have a status.
What I am worried about is that our community seems to be equating user experience with protocol design. As a general rule, this equivalence may be a useful shortcut, but there should be NOTHING in protocol design that requires it. And anytime we ask the community to change a protocol just because we want a different UX, we should thoughtfully consider whether we're putting the architectural pressure in the right place.

PS. This general aggregation-of-UX-for-multiple-independent-phenomena feature is familiar in email and chat apps today, in a non SSI context. You get an individual notifications when individual mails arrive. But if you're like me and you don't answer every message in realtime, it's common to see aggregated stacks in the notifications area on the phone. I may have a 100 unread messages, but they are stacked by conversation, and possibly further stacked by a time grouping or similar, so I don't have to deal with them individually. I can dismiss or mark as read or whatever, on many notifications at once. Or I can explode the aggregate view into individual items and act on them one at a time.
I'm suggesting that mobile SSI wallets could do that same thing with credential offers. If I accept 10 credential offers from the same issuer all at once, the wallet does what's needed to run 10 instances of the credential issuance protocol under the hood without bothering me 10 times for approval.
Again, I'm not arguing that this MUST be done, or even that it SHOULD be done in this case. I'm arguing that nothing is stopping UI engineers from doing it right now. We don't have to change protocols to get better UI. It's always an option to just change UI to accomplish that goal.

I think the human analogy breaks down a bit in that we get postal mail in bulk, once per day.  But if it were delivered in real time as in our case, it would be different.
When I as my wife's agent get the 1st letter, I don't know if I should wait for others to arrive before I tell her about the 1st letter.   And if I decide to wait, for how long?  If I wait too long, my wife might get mad :-)
So we're just proposing that the sender of the letters be able to tell us in advance how many letters they are sending ... and it is expected that they will be sent in rapid succession, so I can wait and give my wife all of her mail at once.

I disagree that as we have framed it @dhh1128 , that this is a major change.  For what has been proposed (optional fields triggering message handling behaviour), the changes meet the semver minor update requirements.  If you are going to propose other ways to address this, then we can evaluate them against the semver rules.
While a motivation for this is UX, the hints provided also affect message processing. Rather than adding the optional fields to let the issuer state their intentions, I interpret your suggestion as saying that there be tribal knowledge with something like -- after receiving an issue, a holder agent may try to infer the intention of the issuer by adding an "wait" event to a queue so that processing on the message can be restarted to see if other "offers" have come in by then.  If so, check to see if the type of the offer is the same as the last, and if so, bundle them together into a notification for the user, otherwise process them separately.  Also, if another offer has come in, wait again, as we don't know if this is the last.  Note that this also implies that the issuer is not to serially issue credentials, but rather send a set of offers in parallel (separate protocols instances) without waiting for the corresponding requests in case the holder decides to batch them together.  And so on...  [Yes there are other ways to do this, but I would argue all require complex handling to infer the intention of the Issuer.]
I don't see how that will ever be implemented, vs. what becomes possible and really simple with the addition of two optional fields in the existing protocol that constitute a minor upgrade.

So we're just proposing that the sender of the letters be able to tell us in advance how many letters they are sending ... and it is expected that they will be sent in rapid succession, so I can wait and give my wife all of her mail at once.

That could be done by having a single new field, optional, named "set_of_n" with an integer value. If you want to tell someone that this is one of a set of 3 credential offers, you do "set_of_n": 3. Now the agent knows to wait for 3 to arrive. It's a UI hint. The rest of the protocol is unmodified. That would be worthy of a semver minor update.

I disagree that as we have framed it @dhh1128 , that this is a major change. For what has been proposed (optional fields triggering message handling behaviour), the changes meet the semver minor update requirements. If you are going to propose other ways to address this, then we can evaluate them against the semver rules.

It is true that the semver rules as currently written say that adding optional fields = a minor upgrade. So if we're going to argue the letter of the law, I concede the point. Hoisted on my own pitard, since I wrote the rules. :-) But this is totally out of harmony with the spirit of the law. The optional fields you have proposed change the state machine from a sequence to a loop -- so every implementation of this protocol now needs to be upgraded not just to recognize additional information, but to support an entirely new paradigm for the workflow. And these optional fields change the meaning of error handling semantics in a substantial way. What happens if there's an error in the middle of a loop? Did the protocol succeed or fail? Is it possible to fail on issuance 2 out of 4, but continue on to issuances 3 and 4 anyway? They also change the meaning of timeouts: do you timeout per iteration through the issuance loop, or for the protocol as a whole? What does retry mean? If you negotiated terms and conditions (separate protocol) or payment (separate protocol) before this issuance began, how does your loop change the meaning of those actions?
This is what I meant when I said that minor changes to fields is not a good way forward. The change looks minor on paper, but it is not minor at all in terms of the mental model of what's happening. The difference is obvious if you compare your proposal to the one I suggested (set_of_n), which communicates some extra info that could optionally be used by agents to alter a UI (even to achieve exactly the UI you're after), but that doesn't change the meaning of the existing protocol or its errors, timeouts, retries, or preceding context in any way.
Better to design a protocol that actually communicates about all of these issues, and that describes itself as a multi credential issuance protocol, than to add a couple optional fields that radically change the paradigm a coder must assume when implementing.

Thinking more about this, rather than solving this separately for verification and issuance (and potentially others in the future), what about solving it for all protocols at once without changing any existing protocol.
I think we could do this by introducing a new protocol, call it 'group', which allows the initiator of the group interaction
to tell in advance how many sub-protocols will be included, a high level description of what the grouping is.  It could include messages similar to:

group/1.0/start-request - to request starting a group interaction and (optionally?) include a total number of sub-protocols and a description

group/1.0/start-response - for the receiver to say whether or not to start the group of sub-protocols

The sub-protocols would then be linked to this parent protocol via the thread.pthid field.  Based on the total field, the receiver would be able to tell when the group is complete.  Of course we could allow an error or abort message to prematurely terminate the group of sub-protocols prematurely.
To support bulk delivery of multiple sub-protocol messages for efficiency, we could also support a 3rd message type ...

group/1.0/deliver -  which would contain an array of sub-protocol messages of any type

We may also want/need for the start-request message to include a list of allowable sub-protocol types that it can initiate, so that the initiator can't bait-and-switch by starting other protocols after the receiver has potentially already approved them locally.
One other comment ... I think we need to make sure that any enhancement can tolerate out-of-order message delivery and that handling this properly puts the least burden on the agents to handle properly as possible

This was discussed on the 20210714 and 20210721 calls.
We talked about the proposal from @smithbk about the group protocol and decide that while more general, it was likely more complex than we need and we probably need some more experience and use cases for the general feature.  As such, we're more or less "sticking with" the original proposal.
Updated the PR to change the indicators of multiple/more credentials to be counts instead of just true/false indicators. Also removed the suggested of using the attachment to the issue-credential as a way to issue multiple different credentials of the same type -- leaving in the original language that this is not permitted. Thus, the only way to use a single instance of a protocol to issue multiple credentials is to use do a request-credential / issue-credential loop.   Clarified how to use problem-report and ~please-ack in conjunction with multiple credentials.
@dhh1128 I think we (and certainly I) disagree that this is a major change.  There is wording in the RFC to say that the issuer MUST not say that there are more credentials to be issued if the Holder uses the "2.0" message type. That will prevent confusion unless both parties explicitly state that they support the 2.1 or later version of the protocols that allows for looping through issuances.   I think the concerns you raise in your most recent message are not much different whether the issuances are done in a single looping protocol instance or in a loop of many protocol instances.  It's potentially complicated either way and I don't see how this proposal makes it worse.

Per the discussion at the Aries WG Meeting (2022.01.02) -- updated the RFC to highlight where minor version differences between agents may impact processing. Notably when an agent using v2.1 gets a credential-request message from an agent using the v2.0 protocol, they v2.1 agent should NOT use multiple issuance features.

Discussed WG 20220309.
This flow only allows the user to see the preview of the first credential.
Additionally, this would affect json-ld credentials differently, as the associated request actually contains attribute values (where AnonCreds does not contain the attribute values).
Side issue: sometimes the more_availble is a boolean, sometimes a number?

Updated the "more_available" references to always be integers.


feat(TX-90): new checkout order breakdown for Avalara phase 2

TX-90
This PR updates a lot of small details regarding the transaction breakdown steps. See the Figma to view all changes.
This is behind the "Avalara Phase 2" lab flag.
UC1
Buy Now

Make Offer

UC4

Order History

@damassi Do you know if we have tests for ArtworkSummaryItem.tsx, and if so, where they would be located?

Had a few non-blocking comments and looks great! 💯 Given the complexity of the checkout flow, I suggest we do a bit more thorough QA and see if we cover all the steps.

@starsirius Thank you for such a thorough review!


Use idiomatic default Go git repo layout

Closes #1116

Codecov Report

Merging #1126 into master will decrease coverage by 0.01%.
The diff coverage is 52.28%.

@@            Coverage Diff             @@
##           master    #1126      +/-   ##
==========================================
- Coverage   52.85%   52.84%   -0.02%
==========================================
  Files         119      121       +2
  Lines       11338    11397      +59
==========================================
+ Hits         5993     6023      +30
- Misses       4637     4667      +30
+ Partials      708      707       -1

Impacted Files
Coverage Δ

internal/progress.go
9.75% <ø> (ø)

cmd/restic/global_release.go
0% <ø> (ø)

internal/walk/walk.go
78.94% <ø> (ø)

internal/repository/repack.go
44.44% <ø> (ø)

internal/ids.go
27.27% <ø> (ø)

internal/repository/testing.go
58.33% <ø> (ø)

internal/tree.go
27.9% <ø> (ø)

internal/node_darwin.go
100% <ø> (ø)

internal/lock_unix.go
64.28% <ø> (ø)

internal/tag_list.go
8% <ø> (ø)

... and 305 more

Continue to review full report at Codecov.

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


clean-css options not working

I'm having trouble disabling a specific rule for clean-css using gulp-clean-css, when I try my config out using the web interface: https://jakubpawlowicz.github.io/clean-css/ it works as intended but when I try it using gulp it doesn't work.
Here's the relevant gulp code:
gulp.src(['./fonts/*.css'])
    .pipe(concat('fonts.css'))
    .pipe(cleanCSS({
        level: {
            1: {
                normalizeUrls: false
            }
        }
    }))
    .pipe(gulp.dest(BUILD_DIRECTORY_BASE + '/assets/css'));

I also tried:
gulp.src(['./fonts/*.css'])
    .pipe(concat('fonts.css'))
    .pipe(cleanCSS({
        normalizeUrls: false
    }))
    .pipe(gulp.dest(BUILD_DIRECTORY_BASE + '/assets/css'));

As a troubleshooting step I also noticed that setting the level to 0 (which is supposed to disable all optimization) does nothing and still minifies the css
gulp.src(['./fonts/*.css'])
    .pipe(concat('fonts.css'))
    .pipe(cleanCSS({
        level: 0
    }))
    .pipe(gulp.dest(BUILD_DIRECTORY_BASE + '/assets/css'));

I'm using gulp-clean-css 3.9.3 on node.js 9.5.0

@ecnepsnai You appear to be using the clean-css API correctly, I have no idea why it wouldn't work for you as this plugin is just passing the options along. Can you throw together a small reproduction repo that uses the gulp plugin and the clean-css node api that demonstrates the difference in results?

@ecnepsnai closing as I find it unlikely that the options passed are not working - there would be droves of consumers here all reporting similar. Please reopen if you can add additional detail or demonstrate the problem.


refactor: Update to Foundry V10

This PR tries to update the code to Foundry V10 standards and to fix some random errors

Closing this as #15 is more recent


shim, meow: Modify checkver

Change checkver (same as https://github.com/lukesampson/scoop/pull/3171)

Following in https://github.com/lukesampson/scoop/commit/823f35b0eb143101b5e3e878f62febbb8b8fa3b4 ‘s footsteps.


Icons in icons shortcode plugin chooser are dimmed

Not really a bug but a kind of enhancement request :-)
Icons in Obsidian Icons Shortcode plugin chooser are dimmed.
This doesn't happen with the default theme.
This animated GIF shows the issue.
Would be great to how how this can be fixed. Thanks.

Obsidian: 0.14.8
Minimal Theme: 5.1.10

Thanks for fixing this @aidenlx.
Looks good now.


Do we have NextJs @12.X.X version support for this plugin?

I have started the microapp upgrade to latest next version i.e 12.X.X, please let me know do we cover the support or not,
Issue facing: Remote entry file created by microapp build is not loading the exposed components and due to which we are unable to import the application in shell app.

Thank you for creating this issue. However, issues need to follow one of our templates so that we can clearly understand your particular circumstances.
Please help us help you by recreating the issue using one of our templates.

can you provide me the template to put the issue again?? for better
understanding. I highly appreciate your help and quick response.
On Fri, Jul 1, 2022 at 8:13 PM Alexander Akait @.***>
wrote:

Closed #16011 https://github.com/webpack/webpack/issues/16011 as
completed.
—
Reply to this email directly, view it on GitHub
https://github.com/webpack/webpack/issues/16011#event-6919095442, or
unsubscribe
https://github.com/notifications/unsubscribe-auth/AFAVSUBX6DP6GDXLSYCIAMLVR3723ANCNFSM52MNY2AA
.
You are receiving this because you authored the thread.Message ID:
@.***>

You can use this link https://github.com/webpack/webpack/issues/new?assignees=&labels=&template=Bug_report.md


unit test config

resolves #8294
docs dbt-labs/docs.getdbt.com/#

Problem

Solution

Checklist

[x] I have read the contributing guide and understand what's expected of me
[x] I have run this code in development and it appears to resolve the stated issue
[x] This PR includes tests, or tests are not required/relevant for this PR
[x] This PR has no interface changes (e.g. macros, cli, logs, json artifacts, config files, adapter interface, etc) or this PR has already received feedback and approval from Product or DX

I'm seeing the same mypy failure on the unit_testing_feature_branch branch: https://github.com/dbt-labs/dbt-core/actions/runs/6111537160/job/16586993751?pr=8411
core/dbt/context/providers.py:1507: error: Argument 1 to "contextmember" has incompatible type "Callable[[UnitTestContext, str, Optional[str]], str]"; expected "Optional[str]"  [arg-type]

That mypy error for contextmember was also seen in a mypy pr that Quigley did. Let me merge main into the feature branch...

Oh, I think '@contextmember' needs to be changed to '@contextmember()'

I suspect we'd get schema changes if we ran the script to build it though.

good point! I updated manifest/v11.json in this commit so we can keep track of where the changes were necessary but won't backfill the artifact tests as this PR is already getting pretty big.

@dbt-labs/cloud-artifacts - these changes going onto a feature branch so don't need review quite yet as they will not be released until the feature branch is merged (which will tag the CA team for review at that point)

Opened a new issue in dbt-labs/docs.getdbt.com: https://github.com/dbt-labs/docs.getdbt.com/issues/4062


run-length-encoding is missing two important unit tests

The README file for the run-length-encoding exercise has this line: If the string contains any whitespace, it should be passed through unchanged
However, there's no unit test to enforce this rule. The decode(encode(...)) combination test doesn't quite cut it because cycling accepts encoded spaces as long as the resulting string gets decoded properly.
I would like to add these two tests to rle_test.exs:
  @tag :pending
  test "encode with whitespace kept intact" do
    assert RunLengthEncoder.encode("AA BB  CDDD") === "2A 2B  C3D"
  end

  @tag :pending
  test "decode with whitespace" do
    assert RunLengthEncoder.decode("2A 2B  C3D") === "AA BB  CDDD"
  end

Am I OK to create a PR for this? These tests pass with the current example implementation.

I created a PR for this. See #314


Flag for NOT generating the ProtocolParser.cs

A flag should be added to not have it write ProtocolParser.cs to the output directory.
This comes in handy when splitting your proto files over multiple directories, as it will put a ProtocolParser.cs in every directory atm (since i have to run it once per directory)

Personally I just don't include the extra ProtocolParser.cs in the project file.
Though I don't see any problem with implementing this feature.

The reason i ask is because i use it with unity, where all files are automatically added.

In that case the feature makes sense.

The flag is --no-protocolparser
Please let me know how it works.


rancher token command generates new token and the old one becomes invalid

SURE-4163
Rancher Server Setup
Rancher Cluster:
Rancher version: 2.6.3
Number of nodes: 5
Node OS version: RHEL7.9
Downstream Cluster:
Number of Downstream clusters: 5
Node OS: RHEL 7.9
RKE/RKE2/K3S version: 1.20.8
Kubernetes version: 1.20.8
CNI: calico
Describe the bug
After upgrading rancher to version 2.6.3, we are seeing the "rancher token" command can cause the old token on the server to get overwritten.
With rancher 2.5.9 I see this (good) behavior:
Run the token command using one config directory:
$ rancher --config=$HOME/tmp/rancher1 token --auth-provider=openLdapProvider --server=our-2.5.9-server --user=my-kubecontext-user
INFO[0000] Saving config to [....]/tmp/rancher1/cli2.json
Enter credentials for openLdapProvider
Enter username: myuserid
Enter password:
INFO[0007] Saving config to [....]/tmp/rancher1/cli2.json
{"kind":"ExecCredential","apiVersion":"client.authentication.k8s.io/v1beta1","spec":{},"status":{"expirationTimestamp":"2022-02-11T04:16:39Z","token":"kubeconfig-user-XXXX:YYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYY"}}
Run the token using a different config directory (since using new config directory will be prompted for userid and password again):
$ rancher --config=$HOME/tmp/rancher1 token --auth-provider=openLdapProvider --server=our-2.5.9-server --user=my-kubecontext-user
INFO[0000] Saving config to [....]/tmp/rancher2/cli2.json
Enter credentials for openLdapProvider
Enter username: myuserid
Enter password:
INFO[0027] Saving config to [....]tmp/rancher2/cli2.json
{"kind":"ExecCredential","apiVersion":"client.authentication.k8s.io/v1beta1","spec":{},"status":{"expirationTimestamp":"2022-02-11T04:16:39Z","token":"kubeconfig-user-XXXX:YYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYY"}}
In the above the exact same token is returned in both calls (even though there were two separate logins). Additional calls to "rancher token" using either of the above two config directories will continue returning this token with no username and password prompt (since the expirationTimestamp is not passed).
We are using this "rancher token" command in our kubeconfig files as a kubectl exec plugin and it works great. Until the token expires, kubectl commands run without any username/password prompt. After they expire, then we are prompted again and the token is refreshed.
The exec plugin functionality is still working for us in 2.6.3, except when we have a separate config directory (i.e. simulating a login from two different hosts). With 2.6.3 a new token is issued on each login and the old token is no longer valid. When I look at the /apikeys url I only see the most recent of the two tokens are present. From that it makes sense that the old token is invalid now.
Here are the full details of the rancher 2.6.3 (bad) behavior:
Run the token command using one config directory:
$ rancher --config=$HOME/tmp/rancher1 token --auth-provider=openLdapProvider --server=our-2.6.3-server --user=my-kubecontext-user
INFO[0000] Saving config to [....]/tmp/rancher1/cli2.json
Enter credentials for openLdapProvider
Enter username: myuserid
Enter password:
INFO[0007] Saving config to [....]/tmp/rancher1/cli2.json
{"kind":"ExecCredential","apiVersion":"client.authentication.k8s.io/v1beta1","spec":{},"status":{"expirationTimestamp":"2022-02-11T04:16:39Z","token":"kubeconfig-user-XXXX:YYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYY"}}
Run the token using a different config directory (since using new config directory will be prompted for userid and password again):
$ rancher --config=$HOME/tmp/rancher1 token --auth-provider=openLdapProvider --server=our-2.6.3-server --user=my-kubecontext-user
INFO[0000] Saving config to [....]/tmp/rancher2/cli2.json
Enter credentials for openLdapProvider
Enter username: myuserid
Enter password:
INFO[0027] Saving config to [....]tmp/rancher2/cli2.json
{"kind":"ExecCredential","apiVersion":"client.authentication.k8s.io/v1beta1","spec":{},"status":{"expirationTimestamp":"2022-02-11T04:16:39Z","token":"kubeconfig-user-XXXX:ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ"}}
The second login returns a different token and the first one is no longer valid
$ rancher --version
rancher version v2.4.11
(same happens with latest 2.6.0 version as well).
To Reproduce
unable to repro
Result
CLI operation seems to have changed between API versions when it comes to renewing tokens
Expected Result
CLI should operate similarly between versions.

I was able to reproduce and viewed that rancher server 2.5 does behave differently than 2.6.
This change in behavior was made with this PR.

Root Cause
The Rancher server creates a new token value every time a kubeconfig is requested via the CLI which invalidates the previously created tokens.
What was fixed, or what change has occurred?
Rancher server now generates a new token every time a kubeconfig is requested via the CLI. This token is then cached by the CLI on the local system.
Areas or cases that should be tested
We need to test the TTL gets set correctly on tokens requested through the following paths:

Install the latest rancher CLI so that it is accessible in your PATH
Create a new rancher server.
Update kubeconfig-generate-token to 'false' https://<rancher-server>/v3/settings/kubeconfig-generate-token
Download kubeconfig for the local cluster
Verify kubectl can be used for cluster communication with downloaded KUBECONFIG. kubectl get pods -A
Repeat steps 4-5 on a different machine, but with the same user.
Verify kubectl can be used for cluster communication on both machines with their downloaded KUBECONFIGs. kubectl get pods -A

What areas could experience regressions
Using kubeconfigs with kubeconfig-generate-token set to false.
Are the repro steps accurate/minimal?
Steps to reproduce the issue.

Install the latest rancher CLI so that it is accessible in your PATH
Create a new rancher server.
Update kubeconfig-generate-token to 'false' https://<rancher-server>/v3/settings/kubeconfig-generate-token
Download kubeconfig for the local cluster
Verify kubectl can be used for cluster communication with downloaded KUBECONFIG. kubectl get pods -A
Repeat steps 4-5 on a different machine, but with the same user.
Check cluster communication on both machines with their downloaded KUBECONFIGs. kubectl get pods -A

Result
Only the second machine's token is valid.
Expected
Both machines contain valid tokens.

:white_check_mark: PASSED
Reproduction Environment

Component
Version / Type

Rancher version
2.6.5

Installation option
helm

RKE binary version used
v1.3.11

If Helm Chart k8s cluster
rke1 	v1.23.6

Cert Details
let's encrypt

Helm version
v2.16.8-rancher1

Downstream cluster type
not applicable

Downstream K8s version
not applicable

Logged in user role
administrator

Browser type
google chrome

Browser version
102.0.5005.115

ADDITIONAL SETUP

Helm commands for Rancher installation:

helm install rancher rancher-latest/rancher \
  --namespace cattle-system \
  --set hostname=$REDACTED \
  --set ingress.tls.source=letsEncrypt \
  --set letsEncrypt.email=$REDACTED \
  --set letsEncrypt.ingress.class=nginx \
  --version 2.6.5

Reproduction steps

Install the latest rancher CLI so that it is accessible in your PATH
Create a new rancher server.
Update kubeconfig-generate-token to 'false' https://<rancher-server>/v3/settings/kubeconfig-generate-token
Download kubeconfig for the local cluster
Verify kubectl can be used for cluster communication with downloaded KUBECONFIG. kubectl get pods -A
Repeat steps 4-5 on a different machine, but with the same user.

Create a Linode Ubuntu instance
Run these commands / similar depending on your situation and setup

# download latest release of kubectl
curl -LO "https://dl.k8s.io/release/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/linux/amd64/kubectl"

# download the kubectl checksum file
curl -LO "https://dl.k8s.io/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/linux/amd64/kubectl.sha256"

# validate the kubectl binary against the checksum file
echo "$(cat kubectl.sha256)  kubectl" | sha256sum --check

# If valid, the output is:
# kubectl: OK

# install kubectl
sudo install -o root -g root -m 0755 kubectl /usr/local/bin/kubectl

kubectl version --client

# start install of rancher cli

 wget https://github.com/rancher/cli/releases/download/v2.6.5/rancher-linux-amd64-v2.6.5.tar.xz

 tar xf rancher-linux-amd64-v2.6.5.tar.xz

 chmod +x rancher

 PATH="$(pwd):$PATH"

 rancher login $RANCHER_URL_WITH_HTTPS --token $RANCHER_BEARER_TOKEN

Additional Info
RESULTS
:white_check_mark: Expected
Expected Both machine's to have valid tokens
:x: Actual
Only the second machine's token is valid

Validation Environment

Component
Version / Type

Rancher version
v2.6-9bcffaa9cb7259a223280de1c50050a443267362-head

Rancher commit link
https://github.com/rancher/rancher/commit/9bcffaa9cb7259a223280de1c50050a443267362

RKE binary version used
v1.3.11

If Helm Chart k8s cluster
rke1 	v1.23.6

Cert Details
let's encrypt

Helm version
v2.16.8-rancher1

Downstream cluster type
not applicable

Downstream K8s version
not applicable

Logged in user role
administrator

Browser type
google chrome

Browser version
102.0.5005.115

ADDITIONAL SETUP

Helm commands for Rancher installation:

helm install rancher rancher-latest/rancher \
  --namespace cattle-system \
  --set hostname=$REDACTED \
  --set letsEncrypt.email=$REDACTED \
  --set letsEncrypt.ingress.class=nginx \
  --version 2.6.5 \
  --set rancherImageTag=v2.6-head

Validation steps

Install the latest rancher CLI so that it is accessible in your PATH
Create a new rancher server.
Update kubeconfig-generate-token to 'false' https://<rancher-server>/v3/settings/kubeconfig-generate-token
Download kubeconfig for the local cluster
Verify kubectl can be used for cluster communication with downloaded KUBECONFIG. kubectl get pods -A
Repeat steps 4-5 on a different machine, but with the same user.

Create a Linode Ubuntu instance
Run these commands / similar depending on your situation and setup

# download latest release of kubectl
curl -LO "https://dl.k8s.io/release/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/linux/amd64/kubectl"

# download the kubectl checksum file
curl -LO "https://dl.k8s.io/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/linux/amd64/kubectl.sha256"

# validate the kubectl binary against the checksum file
echo "$(cat kubectl.sha256)  kubectl" | sha256sum --check

# If valid, the output is:
# kubectl: OK

# install kubectl
sudo install -o root -g root -m 0755 kubectl /usr/local/bin/kubectl

kubectl version --client

# start install of rancher cli

 wget https://github.com/rancher/cli/releases/download/v2.6.5/rancher-linux-amd64-v2.6.5.tar.xz

 tar xf rancher-linux-amd64-v2.6.5.tar.xz

 chmod +x rancher

 PATH="$(pwd):$PATH"

 rancher login $RANCHER_URL_WITH_HTTPS --token $RANCHER_BEARER_TOKEN

Additional Info
RESULTS
:white_check_mark: Expected
Both machines have valid tokens
:white_check_mark: Actual
Both machines have valid tokens

@brudnak could you check if this also resolves https://github.com/rancher/rancher/issues/37992 ?

how can i get rancher's bearer token with rancher cli...??


When setting the changing of a battery, give an option to change the date (pop-up)

Checklist

[X] I have filled out the template to the best of my ability.
[X] This only contains 1 feature request (if you have multiple feature requests, open one feature request for each feature request).
[X] This issue is not a duplicate feature request of previous feature requests.

Is your feature request related to a problem? Please describe.
Because this integration is so new for me, after changing a battery I sometimes forget to directly press "press" (which could imho better be renamed 'SET', see https://github.com/andrew-codechimp/HA-Battery-Notes/issues/409).
Describe the solution you'd like
So after a few days I see the battery notes integration again somewhere and remember last week i replaced batteries from integration X. I now want to go to this entity and press 'SET' and be presented with a pop-up for the date/time. Of course the current date+time would be the default, but using the pop-up I would be able to easily change to last week or even earlier.
Since I used to write the date on the battery itself after replacing is (physically I mean) I would even be able to first set the date of the previous battery change to a date like 14 months ago, and then add the new date of today. The more date, the better the guess when to change it again will get.

Describe alternatives you've considered
I've changed it manually using the developer tools/states/xxx_last_replaced, but that's quite a hassle. Also don't know if I need the change the date in the "button" as well, the two seem to be fully separated after the action has taken place?
Additional context
To make guessing the next needed change even more reliable, the integration then also needs to remember previous times the batteries were changed, and since not all batteries of the same type are the same, also have the use register the make/specs of the battery used. Using an extra library it could then get data like mAH per type and calculate even better.

The popup date/time isn't available for entities, it's been specifically coded within HA to only be used with the helpers which is a little annoying.  I cannot provide my own popup for this.
I am looking at adding an optional date on the service call but have some timezone issues to look into with that.
I would be cautious of updating the last_replaced date by the developer tools, I don't think this will survive a restart.
The button date/time is independent and just shows when the button was pressed, standard HA functionality so that does not need to be changed when editing manually.


Fix the false warning on missing pdbs

Couldn't find from where unmatched_dlls_length was adjusted and it seemingly throwing wrong warnings for missing pdbs. Might be a hack from my side though.

Duplicates #19369.

Ahh my bad should have checked before.


Added SC Docker container info

Description

Motivation and Context

Types of changes

[ ] Bug fix (non-breaking change which fixes an issue)
[ ] New feature (non-breaking change which adds functionality)
[ ] Breaking change (fix or feature that would cause existing functionality to change)
[ ] Documentation fix (typos, incorrect content, missing content, etc.)

Checklist

[ ] I have read the contributing document.
[ ] My change requires a change to the documentation.
[ ] I have updated the documentation accordingly.
[ ] I have added tests to cover my changes.
[ ] All new and existing tests passed.

Thanks @alexh-sauce for your quick review. Can you please take a look at docs/secure-connections/sauce-connect/setup-configuration/specialized-environments.md to ensure I've captured your changes?


Data investigation notes

Stats for visualization

[x] Bar chart of number of places per region
[x] Bar chart of number of places per country
[x] Bar chart of number of places per type
[x] Bar chart of number of places: Chile vs. rest of the world
[x] Map of pins
[x] Timeline of places built per month and year (only when oldest_known_source contains desc; annotate 26 June 2008 and other relevant dates)
[x] Earliest place that was named after Allende
[x] Most quoted lines from Allende (especially from the last speech) - kinda done. Hard to quantify using the desc data, but there is one obviously most quoted line from Allende.

Main filter for determining extant vs. non-extant Allende places: if former_name does not contain Allende AND verified_in_maps = 1, then it is extant
Who were building things for Salvador Allende?
Expand and provide examples for each section:

[x] Socialists
[x] Democrats
[x] Chileans

Variations on a theme: How was Salvador Allende portrayed?
Not implemented as its own section but instead added as notes in the dataviz section

[x] As a physician for the people (see hospitals, especially in Central America)
[x] As a martyr for the masses (connect this to the section on how he died)
[x] Great avenues

How did Salvador Allende die, really?

Make sense of what I've gathered so far not from a historical perspective ("How did Allende die?") but from a psychological perspective ("Why would people believe that Allende died a certain way?")

To do

[x] Fix broken images by changing their extension from .jpeg to .jpg
[x] Translate http://www.memoriachilena.gob.cl/602/w3-article-799.html#ui-id-3 add add this to the section on Who was Salvador Allende
[x] Add technical notes on the data in the Readme instead of the data investigation page

We're prolly done for this year


ux(gui-client): remove keyboard accelerators

Closes #5953
In all my testing on Windows I've never seen these work. I tried them a couple days ago on Linux and I haven't seen them work there either. No clue why. Tauri bug? Windows bug?

@conectado Should we mention this in the changelog? It's pretty minor and if nobody told us they were broken, then I guess nobody was using them to begin with


Update to swift 403

Update to swift403

Codecov Report

Merging #13 into master will increase coverage by 24.37%.
The diff coverage is n/a.

@@             Coverage Diff             @@
##           master      #13       +/-   ##
===========================================
+ Coverage      51%   75.37%   +24.37%
===========================================
  Files           9       12        +3
  Lines         743     2108     +1365
  Branches        0       89       +89
===========================================
+ Hits          379     1589     +1210
- Misses        364      519      +155

Flag
Coverage Δ

#SwiftyRequest
75.37% <ø> (+24.37%)
:arrow_up:

Impacted Files
Coverage Δ

Sources/SwiftyRequest/StringExtensions.swift
100% <0%> (ø)
:arrow_up:

Sources/SwiftyRequest/MultipartFormData.swift
0% <0%> (ø)
:arrow_up:

Sources/SwiftyRequest/RestUtilities.swift
0% <0%> (ø)
:arrow_up:

Sources/SwiftyRequest/RestToken.swift
0% <0%> (ø)
:arrow_up:

Sources/SwiftyRequest/HTTPMethod.swift
0% <0%> (ø)
:arrow_up:

...ts/SwiftyRequestTests/CodableExtensionsTests.swift
99.26% <0%> (ø)

Tests/SwiftyRequestTests/JSONTests.swift
94.6% <0%> (ø)

Tests/SwiftyRequestTests/SwiftyRequestTests.swift
87.03% <0%> (ø)

Sources/SwiftyRequest/JSON.swift
96.07% <0%> (+0.78%)
:arrow_up:

Sources/SwiftyRequest/JSONWrapper.swift
28.31% <0%> (+1.04%)
:arrow_up:

... and 2 more

Continue to review full report at Codecov.

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


Defer loading of cloud.json file

This is achieved by deferring the initialization of low-level instances until they are needed and by customizing attribute access for the confg.py module.
New behavior
No more warning on imports when you're not logged in (no cloud.json file).
>>> import tiledb
>>> import tiledb.cloud
>>>

The warning appears the first time you do anything that requires being logged in, like accessing config.config or using a low-level REST server client.
>>> tiledb.cloud.client.Ctx()
/Users/sean.gillies/projects/TileDB-Inc/TileDB-Cloud-Py/.venv/lib/python3.9/site-packages/tiledb/cloud/config.py:102: UserWarning: You must first login before you can run commands. Please run tiledb.cloud.login.
  warnings.warn(
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/Users/sean.gillies/projects/TileDB-Inc/TileDB-Cloud-Py/.venv/lib/python3.9/site-packages/tiledb/cloud/client.py", line 63, in Ctx
    return tiledb.Ctx(Config(config))
  File "/Users/sean.gillies/projects/TileDB-Inc/TileDB-Cloud-Py/.venv/lib/python3.9/site-packages/tiledb/cloud/client.py", line 52, in Config
    cfg["rest.token"] = config.config.api_key["X-TILEDB-REST-API-KEY"]
KeyError: 'X-TILEDB-REST-API-KEY'

After you login, you can continue.
>>> tiledb.cloud.login(token="******")
>>> tiledb.cloud.client.Ctx()
tiledb.Ctx() [see Ctx.config() for configuration]
>>> tiledb.cloud.asset.list()
{'data': [{'asset_backing_type': 'array', ... }

@jparismorgan tagging you for review as this helps users who import tiledb.vector_search.