CUDA Setup failed despite CUDA being available.

This is my terminal output:
(llavatest) nvidia@nvidia-desktop:/home/Storage/workplace$ python -m bitsandbytes
Could not find the bitsandbytes CUDA binary at PosixPath('/home/Storage/anaconda3/envs/llavatest/lib/python3.8/site-packages/bitsandbytes/libbitsandbytes_cuda114.so')
Could not load bitsandbytes native library: /home/Storage/anaconda3/envs/llavatest/lib/python3.8/site-packages/bitsandbytes/libbitsandbytes_cpu.so: cannot open shared object file: No such file or directory
Traceback (most recent call last):
File "/home/Storage/anaconda3/envs/llavatest/lib/python3.8/site-packages/bitsandbytes/cextension.py", line 104, in
lib = get_native_library()
File "/home/Storage/anaconda3/envs/llavatest/lib/python3.8/site-packages/bitsandbytes/cextension.py", line 91, in get_native_library
dll = ct.cdll.LoadLibrary(str(binary_path))
File "/home/Storage/anaconda3/envs/llavatest/lib/python3.8/ctypes/init.py", line 451, in LoadLibrary
return self._dlltype(name)
File "/home/Storage/anaconda3/envs/llavatest/lib/python3.8/ctypes/init.py", line 373, in init
self._handle = _dlopen(self._name, mode)
OSError: /home/Storage/anaconda3/envs/llavatest/lib/python3.8/site-packages/bitsandbytes/libbitsandbytes_cpu.so: cannot open shared object file: No such file or directory
CUDA Setup failed despite CUDA being available. Please run the following command to get more information:
python -m bitsandbytes
Inspect the output of the command and see if you can locate CUDA libraries. You might need to add them
to your LD_LIBRARY_PATH. If you suspect a bug, please take the information from python -m bitsandbytes
and open an issue at: https://github.com/TimDettmers/bitsandbytes/issues
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
++++++++++++++++++ BUG REPORT INFORMATION ++++++++++++++++++
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
++++++++++++++++++++++++++ OTHER +++++++++++++++++++++++++++
CUDA specs: CUDASpecs(highest_compute_capability=(8, 7), cuda_version_string='114', cuda_version_tuple=(11, 4))
PyTorch settings found: CUDA_VERSION=114, Highest Compute Capability: (8, 7).
Library not found: /home/Storage/anaconda3/envs/llavatest/lib/python3.8/site-packages/bitsandbytes/libbitsandbytes_cuda114.so. Maybe you need to compile it from source?
If you compiled from source, try again with make CUDA_VERSION=DETECTED_CUDA_VERSION,
for example, make CUDA_VERSION=113.
The CUDA version for the compile might depend on your conda install, if using conda.
Inspect CUDA version via conda list | grep cuda.
To manually override the PyTorch CUDA version please see: https://github.com/TimDettmers/bitsandbytes/blob/main/docs/source/nonpytorchcuda.mdx
Found duplicate CUDA runtime files (see below).
We select the PyTorch default CUDA runtime, which is 11.4,
but this might mismatch with the CUDA version that is needed for bitsandbytes.
To override this behavior set the BNB_CUDA_VERSION=<version string, e.g. 122> environmental variable.
For example, if you want to use the CUDA version 122,
BNB_CUDA_VERSION=122 python ...
OR set the environmental variable in your .bashrc:
export BNB_CUDA_VERSION=122
In the case of a manual override, make sure you set LD_LIBRARY_PATH, e.g.
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/cuda-11.2,

Found CUDA runtime at: /usr/local/cuda-12.2/lib64/libcudart.so.12
Found CUDA runtime at: /usr/local/cuda-12.2/lib64/libcudart.so
Found CUDA runtime at: /usr/local/cuda-12.2/lib64/libcudart.so.12.2.140
Found CUDA runtime at: /usr/local/cuda-12.2/lib64/libcudart.so.12
Found CUDA runtime at: /usr/local/cuda-12.2/lib64/libcudart.so
Found CUDA runtime at: /usr/local/cuda-12.2/lib64/libcudart.so.12.2.140
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
++++++++++++++++++++++ DEBUG INFO END ++++++++++++++++++++++
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Checking that the library is importable and CUDA is callable...
Couldn't load the bitsandbytes library, likely due to missing binaries.
Please ensure bitsandbytes is properly installed.

For source installations, compile the binaries with cmake -DCOMPUTE_BACKEND=cuda -S ..
See the documentation for more details if needed.
Trying a simple check anyway, but this will likely fail...
Traceback (most recent call last):
File "/home/Storage/anaconda3/envs/llavatest/lib/python3.8/site-packages/bitsandbytes/diagnostics/main.py", line 66, in main
sanity_check()
File "/home/Storage/anaconda3/envs/llavatest/lib/python3.8/site-packages/bitsandbytes/diagnostics/main.py", line 40, in sanity_check
adam.step()
File "/home/Storage/anaconda3/envs/llavatest/lib/python3.8/site-packages/torch/optim/optimizer.py", line 88, in wrapper
return func(*args, **kwargs)
File "/home/Storage/anaconda3/envs/llavatest/lib/python3.8/site-packages/torch/autograd/grad_mode.py", line 27, in decorate_context
return func(*args, **kwargs)
File "/home/Storage/anaconda3/envs/llavatest/lib/python3.8/site-packages/bitsandbytes/optim/optimizer.py", line 291, in step
self.update_step(group, p, gindex, pindex)
File "/home/Storage/anaconda3/envs/llavatest/lib/python3.8/site-packages/torch/autograd/grad_mode.py", line 27, in decorate_context
return func(*args, **kwargs)
File "/home/Storage/anaconda3/envs/llavatest/lib/python3.8/site-packages/bitsandbytes/optim/optimizer.py", line 521, in update_step
F.optimizer_update_32bit(
File "/home/Storage/anaconda3/envs/llavatest/lib/python3.8/site-packages/bitsandbytes/functional.py", line 1624, in optimizer_update_32bit
optim_func = str2optimizer32bit[optimizer_name][0]
NameError: name 'str2optimizer32bit' is not defined
Above we output some debug information.
Please provide this info when creating an issue via https://github.com/TimDettmers/bitsandbytes/issues/new/choose
WARNING: Please be sure to sanitize sensitive info from the output before posting it.
And my cuda in conda environment is shown like this:
(llavatest) nvidia@nvidia-desktop:/home/Storage/workplace$ nvcc --version
nvcc: NVIDIA (R) Cuda compiler driver
Copyright (c) 2005-2023 NVIDIA Corporation
Built on Tue_Aug_15_22:08:11_PDT_2023
Cuda compilation tools, release 12.2, V12.2.140
Build cuda_12.2.r12.2/compiler.33191640_0

And I have compile the bits and bytes in my device and pip it in my conda environment, and I think it compile under the cuda 12.2, does it matter?

I get the same "CUDA Setup failed despite CUDA being available"
Trying to use InvokeAI.
Starting invoke ai gives me the following:
`File "/home/piedrok/.invokeai/.venv/lib64/python3.11/site-packages/bitsandbytes/cextension.py", line 109, in
lib = get_native_library()
^^^^^^^^^^^^^^^^^^^^
File "/home/piedrok/.invokeai/.venv/lib64/python3.11/site-packages/bitsandbytes/cextension.py", line 88, in get_native_library
cuda_specs = get_cuda_specs()
^^^^^^^^^^^^^^^^
File "/home/piedrok/.invokeai/.venv/lib64/python3.11/site-packages/bitsandbytes/cuda_specs.py", line 39, in get_cuda_specs
cuda_version_string=(get_cuda_version_string()),
^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/piedrok/.invokeai/.venv/lib64/python3.11/site-packages/bitsandbytes/cuda_specs.py", line 29, in get_cuda_version_string
major, minor = get_cuda_version_tuple()
^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/piedrok/.invokeai/.venv/lib64/python3.11/site-packages/bitsandbytes/cuda_specs.py", line 24, in get_cuda_version_tuple
major, minor = map(int, torch.version.cuda.split("."))
^^^^^^^^^^^^^^^^^^^^^^^^
AttributeError: 'NoneType' object has no attribute 'split'
CUDA Setup failed despite CUDA being available. Please run the following command to get more information:
python -m bitsandbytes
Inspect the output of the command and see if you can locate CUDA libraries. You might need to add them
to your LD_LIBRARY_PATH. If you suspect a bug, please take the information from python -m bitsandbytes
and open an issue at: https://github.com/TimDettmers/bitsandbytes/issues
`
python -m bitsandbytes
/usr/bin/python: No module named bitsandbytes
That's clearly wrong as the errors above show.
What to do?


Moved block logic into its own method so that the lock is released be…

Moved block logic into its own method so that the lock is released before sending the response content
Attempt at fixing #67, might also solve #59.
!!!!Note that I have no knowledge or experience of GO so the code might not even compile!!!!

HandleRequest might not be the best name, so feel free to rename it :)

@tomMoulard any chance this could be merged and released?

@tomMoulard is there any thing I can improve to get this merged? as this is a show blocker for me.

Hey @AnderssonPeter, I will look into this ASAP. Thanks for your interest in this Traefik Plugin !

@tomMoulard Did you have time to look into this yet? Would appreciate the fix!

Hello everyone :wave: is there any progress on this one? I would happily help if I knew Go :sweat_smile:

Just letting you know that this PR does not solve #67 nor #59, as it is only a cosmetic rewrite of the block.
The mutex will be unlocked after the end of the method call, whereas before, if was unlocked at the end of the ServeHTTP function. This is why I do not see a groundbreaking change in this PR, and I am not that enthusiastic in merging it.
If someone have another opinion, and can add tests to this PR to prove me wrong, I will happily and promptly move forward on this topic !

First time writing go code as I said, so I believe you :) you can close the pr then :).
But it would be nice if you provided a fix of your own.

The idea was that the lock taken inside CheckRequest should be released when it exits the function, as the function is done before we handle the request.
But I guess that I either misunderstand the issue or don't know how defer works in go.
Hope you find a alternative solution.

yes indeed, but I would like to find a way to remove the lock entirely

Sadly I can't help you there, I have no idea if go has any lockless data structures.

As I fixed the deadlock issue on ws, I implemented your solution in #77, thanks a lot @AnderssonPeter !


Refactor sandbox setup

Refactored styled-components sandbox to use micro(-dev) + webpack-dev-middleware + webpack-hot-loader as @philpl suggested in https://github.com/styled-components/styled-components/pull/1257#issuecomment-351054607
The new setup is a simplified, dev-only version of the example repo.
What is supported:

Server-side rendering
Hot module replacement 🆕
Server live-reload 🆕

The things that aren't working that nice:

react-hot-loader seems to have some problems with detecting how to update styled-components, every SC component produces this error during update
eslint-loader still finds some indentation errors in the styled-components src and if the error is emitted by the loader, HMR is not working, so eslint-loader is disabled for now

I also changed how examples are loaded: all *.example.js files will be loaded as raw strings that could be used to put into react-live. That way we can still have examples in js file with formatting and everything, but now we can load them easily into the sandbox without creating some template strings  manually

Just to let you know, I've also tested this locally, and I echo what @mxstbr say. Been rebasing the integration tests on this branch, working good so far :+1:

@gribnoysup try https://github.com/quangbuule/extract-hoc

@mxstbr yep, totally forgot about logs, will reduce them!
@probablyup thanks for advice! I probably will try this in another PR, don't want to delay the merge and react-hot-loader doesn't seems to be a blocker
@philpl I'd appreciate some nits anyway for educational purposes 😸 Will rebase asap

@philpl rebasing dismissed the review somehow, sorry!
Rebased on master with a few other changes:

Disabled webpackDevMiddleware logs as @mxstbr suggested
Added source maps to the client build, somehow I totally forgot about this before 😅
Changed error handling a little, now errors are properly propagated to the client

Please note that sandbox is not working properly after the rebase because there seems to be an error in the current master branch, that breaks styled-components usage on server (I created another PR with a fix for this https://github.com/styled-components/styled-components/pull/1394)

Let's wait for @mxstbr to have a look at your small changes 👍

Since #1394 was merged (fast PR @gribnoysup! :clap: ) do you mind rebasing on top of master to make sure SSR works again? Then I'll test it locally one last time and we can ship it 👌

@mxstbr done 😉

I'm very very excited about this. Awesome work @gribnoysup!

Good work @gribnoysup I'll try to get the examples / integration tests rebased on this


Sort roles dict by keys when serializing

Description of issue or feature request:
To reduce variation and achieve better diffs we probably should sort keys in roles dict before serializing.
Current behavior:
The order is random.
Expected behavior:
The order should be alwwys the same.

The order is random.

It is not. Python 3.7 and newer guarantee that dict ordering is preserved, just like OrderedDict.

If your issue is that you are inserting items in non-reproducible order, then using OrderedDict won't help at all: it just preserves the insert order, just like Dict does.
If this PR helps your case then it's actually the sort() calls you've also added that are doing the work: those would help the case you describe. Sorted order seems like a fine choice for some containers (like sigs) but I don't know if we want to change that at this point...

@lukpueh  @joshuagl I'm sure we discussed potentially sorting dicts on serialize at some point. Any recollections on that?

It came up in some of @MVrachev's work:

https://github.com/theupdateframework/python-tuf/pull/1783
https://github.com/theupdateframework/python-tuf/pull/1775

There was also an issue with not preserving the order in a list, for which we use a dict internally:

https://github.com/theupdateframework/python-tuf/issues/1752

And:

https://github.com/theupdateframework/python-tuf/issues/1211

Can't remember the details right now.

If your issue is that you are inserting items in non-reproducible order, then using OrderedDict won't help at all: it just preserves the insert order, just like Dict does.

I know. The order is enforced by sorting, and I think it's TUF lib responsibility to enforce ordering: almost everyone will need it, sorting will cost almost nothing (for small enough n, but it is likely to be small enough). OrderedDict (Python language keeps it despite just dict is currently ordered in modern versions and even has introduced into typing module instead of just deprecating it, moving its functionality to just dict and leaving an alias OrderedDict = dict. I guess it may be the case that in future just dict can become unordered again) is just to enforce that sortedness is future-proof.

On using OrderedDict: I don't think it has enough advantages to outweigh the cost in uglier code. The idea that python will make dict unordered in future is pure guesswork
On sorting: As discussed the output is stable if your order of operations is stable: so no, everyone does not need this, only those who have tests with non-reproducible operation order. I'm hoping most actual TUF tools would not even show users raw metadata diffs, but even if they do -- how would they have a random operation order? I'm not saying I'm totally opposed to the idea but it does have costs involved as well:

a tricky looking change in low level code: the PR is harder to read than current code at least at the moment. Maybe this can be improved but I'm saying the review and fixes do have a cost...
sudden output change for all projects producing metadata already -- this only happens once per metadata but since some metadata changes rarely, it will keep surprising people. That said the effect might be quite limited: most dicts have static keys and have been completely sorted all along (this is why no tests failed: the test metadata didn't change at all)

TL;DR: I think the sorting is worth considering.

I am not sure I understand the need of using sort here.
We are sure that the order is preserved which is the important thing.
Can you phrase it clearer why you think that almost anyone will need it?

Can you phrase it clearer why you think that almost anyone will need it?

I think that the metadata files produced from a set of source files (i.e. keys and user files) should be as similar as possible to other (i.e. from different invocations in randomized conditions, or produced by different tools) metadata, because it (in the order of reducing importance)

simplifies looking into them for a human being
eliminates non-meaningful (when files have the same meaning, but are serialized into different set of bytes) variations, this way eliminating unneeded storage objects in content-addressable storages
minimizes delta size for delta-compression

While 1. and 2. are only important for developers, 3. would impact everyone.

Cheers, the code changes look a lot easier to understand now without OrderedDict (it's such a painful API).
I have code comments but let's not get into those before others have voiced an opinion on the idea itself: should we change the serialization dict output order from insert-order to stable or alphabetical order*?
*) current PR doesn't actually implement 100% alphabetical but what looks like a stable, almost alphabetical order

I don't have a strong opinion on this.
I can see the benefits, especially the first point.
I think it's up to the implementation - of it looks complicated then it's not worth it as an addition, if there is a way to make it simple and understandable for the maintainers then it could be worth it.

Let me try to summarize the discussion. IIUC the goal here is reproducible metadata, which can be achieved by:

not changing inputs in an unexpected way (e.g. preserving input order), and/or
canonicalizing inputs (e.g. ordering)

(1) is already true for the internal representation as discussed above, and (2) is already true to some extent for the default json serializer (sorted keys, uniform indentation and whitespace).
IMO:

it's okay to expect users, who desire reproducible outputs, to provide reproducible inputs
the key sorting in our json deserializer already does what OP wants
doing additional canonicalization in the default json serializer seems like unexpected behavior
users, who want a canonical wireline format, can use a custom serializer

TL;DR: I'm for closing this issue.

So after lukas' comment I actually looked at the JSON serialization code and we do sort dicts by key! So now I'm confused. If I understand correctly the serialization result (the json) is already 100% sorted wherever it should be...
@KOLANICH is this correct: JSON is already like you want but you are asking for the intermediate format (the python dicts) to also be sorted? Could you show actual code that is broken by the current functionality -- is this about Metadata eq comparisons or something?

I just used an own serializer and parser because I have an own library of serializers and parsers from/into various serialization formats.

but you are asking for the intermediate format (the python dicts) to also be sorted?

So, yes.
It can probably be dealt with in a serializer, but storing them sorted should have a benefit that re-sorting should be faster.

Ok thanks for the details.
I think in that case I agree with Lukas: When this was designed sorting was intentionally left to the serializer. Change of behaviour now is not worth the small risk when the benefit is also so small: serializers are supposed to choose their serialization format, this includes potentially sorting dicts.
I'll close this based on votes from me and lukas


Refactoring

Can you update the docstring for the attributes below? The output_id got moved into records I think, and now we have a suppress attribute in the class.
https://github.com/AI-SDC/ACRO/blob/21fd20a5aa1e00a51c3b340424f60ceaed15f56e/acro/acro.py#L28-L35
https://github.com/AI-SDC/ACRO/blob/21fd20a5aa1e00a51c3b340424f60ceaed15f56e/acro/acro.py#L57-L59

The add_constant() function in acro.py probably should also get moved into acro_regression.py ? But we still want the API to be the same, so I think also adding from .acro_regression import * at the bottom of acro/__init__.py will do the trick?

I thought because add_constant() is a general function that does not relate to tables or regression it should be in the acro.py rather than acro_regression.py or acro_tables.py.
Why do you think we should move it?

It's a wrapper to the statsmodels function that is used transform the data before applying a regression so that there is also a constant term as well as the coefficients.

Sorry, I don't know why I was thinking about the  add_to_acro function and not the add constant function. Although I wrote add_constant` in the previous comment.
That makes sense now


Closing "Edit Settings" leads to an Error

Bug Report
System Information

Ubuntu 18.04.4 LTS
v<IP_ADDRESS>, built 24/03/2020 12:17
Mainline

I confirm:

[x] that I have searched for an existing bug report for this issue.
[x] that I am using the latest available version of AMP.
[x] that my operating system is up-to-date.

Symptoms

Im just opening "Edit Settings" of an Instance
The window should just close
It's showing an error

Null Reference
Object reference not set to an instance of an object
Thrown by the 'ADSModule' plugin while performing the 'RefreshGroup' method.
Related Link:
Advanced Details

  at ADSModule.WebMethods.RefreshGroup (Guid GroupId)
  at GSMyAdmin.WebServer.WebAttributes.InvokeMethod (String MethodName, Newtonsoft.Json.Linq.JObject Data, m.Http.IHttpRequest request, ModuleShared.IWebSession Session, ModuleShared.WebMethodsBase MethodsClass, String RawRequest)
  at GSMyAdmin.WebServer.APIService.InvokeAPI (m.Http.IHttpRequest request, ModuleShared.IWebSession Session, Newtonsoft.Json.Linq.JObject Data, String RequestModule, String RequestMethod, String RawRequest)

Error:

Already fixed. Run ampinstmgr --nocache upgrade ADS01 to fix.

Didn't fix it for me. Exact same error. Deleted cache and restarted ADS, but still.

Try again, just pushed another tweak.

Works.


Brake position (%) missing from 0x139 (313)

Somehow Brake Position (%) got missed in the list of known channels on CAN ID 0x139 (313) even though it's included in your RaceChrono data logging project at https://github.com/timurrrr/RaceChronoDiyBleDevice/blob/master/can_db/ft86_gen2.md
Here's what you wrote in the other project:
Brake position (%) | 313 | min(F / 0.7, 100) | The 0.7 divider seems to be a good value to get 100% at pressure  slightly higher than those you're likely to use on the track for cars  with no aero. You can use 0.8 or 0.9 if you see 100% too often.

Thanks for flagging!
This was somewhat intentional: from the perspective of the CAN bus protocol, there is no "brake position", only "brake pressure".. In the RaceChronoDiyBleDevice project I just suggested a formula that takes the brake pressure and provides a "brake position" channel with a reasonable (but not optimal) scale.
That being said, I'll add a note to the 0x139 section suggesting the same formula.

See commit 8c0f8d89e7fdcf23f97188c0305aed95402b4396


MAX concurrent networking requests

Since networking requests should be under control.
We need to limit the max amount of the concurrent requests, and the other requests should waiting for the requests in the concurrent pool to finished.

done


positions_data error

the robin-stocks author pushed an update on github that says it's working for him with 2FA turned on.  I got it going, but I get these errors now.
Traceback (most recent call last):
File "C:\RobinhoodBot\robinhoodbot\main.py", line 258, in
scan_stocks()
File "C:\RobinhoodBot\robinhoodbot\main.py", line 242, in scan_stocks
sell_holdings(symbol, holdings_data)
File "C:\RobinhoodBot\robinhoodbot\main.py", line 186, in sell_holdings
shares_owned = int(float(positions_data[symbol].get("quantity")))
NameError: name 'positions_data' is not defined

Figured this out.  It was a stock I was holding that filed for bankruptcy!  Somehow it was messing with robin-stocks.


[Bug]The widget size reduces when there are drag and dropped in the container widgets

DescriptionThe widget size reduces when there are drag and dropped in the container widgets
[What happened]The widget size reduces when there are drag and dropped in the container widgets
Steps to reproduce the behaviour:

Important Details

Version: [Cloud ]
OS: MacOS
Browser  chrome
Environment production

Closing as this is expected behaviour. This happens because we want to ensure that you can move the widgets from the container to the canvas and back without having to re-size them.


to_send string not cleared in _finish()

How to reproduce:
logic = saleae.Saleae()
logic.set_active_channels([7], [0,1,2,3,4,5,6])
logic.set_capture_seconds(options.trace_time)
logic.set_sample_rate_by_minimum(1e6, 10e3)
logic.set_triggers_for_all_channels([
saleae.Trigger.NoTrigger,
saleae.Trigger.NoTrigger,
saleae.Trigger.NoTrigger,
saleae.Trigger.NoTrigger,
saleae.Trigger.NoTrigger,
saleae.Trigger.NoTrigger,
saleae.Trigger.NoTrigger,
saleae.Trigger.Posedge
])
Traceback (most recent call last):
File "./trace-xu3.py", line 396, in
main()
File "./trace-xu3.py", line 195, in main
saleae.Trigger.Posedge
File "/home/aschulm/Projects/battor_research/third_party/python-saleae/saleae/saleae.py", line 145, in set_triggers_for_all_channels
self._finish()
File "/home/aschulm/Projects/battor_research/third_party/python-saleae/saleae/saleae.py", line 88, in _finish
return self._cmd(', '.join(self._to_send))
File "/home/aschulm/Projects/battor_research/third_party/python-saleae/saleae/saleae.py", line 113, in _cmd
return self._recv()
File "/home/aschulm/Projects/battor_research/third_party/python-saleae/saleae/saleae.py", line 106, in _recv
raise self.CommandNAKedError
saleae.CommandNAKedError
How to solve:
self._to_send = [] in finish().
*I'd be happy to fix if you add me as a contributor.

Please do


API for delete application

So we have found ourselves in the situation where somehow the instanceID registered has "http://" in it. We are unable to use the regular delete endpoint to get rid of it.  It would be nice to expose an endpoint that would delete the app or clear all instanceIDs.

+1

@bebepeng @zgagnon  sorry for not taking a look at this issue earlier. Can you describe the issue you are seeing in a bit more detail? From what you describe, can I assume the "http://" of the id is what's preventing the DELETE request due to url parsing?
If that is the case, eureka have an internal eviction mechanism where if a heartbeat from a client source is missed for 3 consecutive times (using default config, this would be ~90s), then that entry will be evicted from the registry on the client side. Are you able to shutdown the client with bad instancesIds for that amount of time? If so, that will allow you to evict these client with bad ids.
As for defining instanceIds, as of release 1.2.5 there is a configuration option available to define a custom instanceid for the client instead of sourcing it automatically (see #553), and if you are using the default configuration options, the config setting is eureka.instanceId=some-id

Have resolved the issue.
Our Eureka instance was in self-preservation mode due to a large number of instances being turned off at once. After manually deleting all extraneous instances that we could, the invalid id instance (http://<IP_ADDRESS>) failed its heartbeats and was removed. In this case, a different app had 50+ instances registered at one point (which were all disabled), and after removing them one-by-one, the problem resolved.
With either case, being able to delete the app would have made this a bit easier.

Glad to hear that issue is resolve on your end. Closing this issue.
W.r.t. an API for application level deletion, agree that it would be useful in some cases. If there is some urgency to the desire of this feature, please feel free to make a PR to add it. Thanks.


inconsistent base URI application?

Having just tried the latest version of COW, with build and convert on the test file (imf_gdppc.csv) without any edits to the metadata json-file, we (@morkor and me) get what seems to to us inconsistent URIs across sub/pred/graph
<https://iisg.amsterdam/resource/6> <http://data.socialhistory.org/resource/Int> "72,524"^^<http://www.w3.org/2001/XMLSchema#string> <http://iisg.amsterdam/imf_gdppc/assertion/0f8040d8/2017-11-01T14:45> .
Note the difference between subject (iisg.amsterdam/resource/) and predicate (data.socialhistory.org). I think this happens here:
https://github.com/CLARIAH/COW/blob/b95bb3027ef6471547b3d86a1ca4831e0f6259f2/src/converter/csvw.py#L510
But don't feel confident to start changing the converter's internals. I'm also having trouble finding the base  in BurstConverter, which would the best thing to replace data.socialhistory.org with IMO.
The other thing is that the graph predicate does not have the /resource/ bit. I can see how this would be on purpose, but just wanted to make sure this is what we want. Either way, the fact that /resource/ is missing means that it is not based on the base-URI in the metadatafile, but hardcoded somewhere else in the converter which limits its usability for people who are not iisg.amsterdam.

Hi, well spotted: to illustrate, if you run cow_tool build imf_gdppc.csv  --base "http://uu.nl/seh"
you'll get
<http://uu.nl/seh/6> <http://data.socialhistory.org/resource/Int> "72,524"^^<http://www.w3.org/2001/XMLSchema#string> <http://iisg.amsterdam/imf_gdppc/assertion/0f8040d8/2017-11-01T15:19> .

Thanks @rijpma and @rlzijdeman
I have been looking at this, but this inconsistency might actually be a feature and not a bug. It's considered good practice to have two different prefixes separating dataset resources and vocabulary terms; so you typically have
@prefix foo-r : <http://foo.baz/resource/>
@prefix foo: <http://foo.baz/vocab#>

And then you find them in the data as
<http://foo.baz/resource/1> <http://foo.baz/vocab#myProperty> "value" .
Another question would be whether we want to allow users to mint their own vocabulary dataspaces instead of defaulting to ours, so adding a parameter like this would allow that:

$ cow_tool build myfile.csv --base=http://foo.baz/resource/ --vocab=http://foo.baz/vocab#`

Would that make sense?

Hi @albertmeronyo,
ok, that makes sense. But that still leaves these issues:

without specifiying --base  resource/ is added to the base-uri and that should not be the case. (note that if you build the file, the @base in the .json file is https://iisg.amsterdam/resource and should be https://iisg.amsterdam

the default uri for the property should start with https://iisg.amsterdam as well, rather than http://data.socialhistory.org. The vocab parameter you suggest, would indeed be an important addition.

some of these uri's (http://data.socialhistory.org) are hard-coded in COW.

I have created the cbase branch to resolve the latter. Hope that helps.

All good suggestions, agree that distinguishing between vocab and data is a good idea. Just to make sure we are talking about the same rules, I'm putting the four outcomes below.
Nothing specified, all defaults: cow_tool build myfile.csv :
<http://data.iisg.amsterdam/resource/1> <http://data.iisg.amsterdam/vocab#myProperty> "value" .

All specified, no defaults: cow_tool build myfile.csv --base=http://foo.baz/resource/ --vocab=http://foo.baz/vocab#:
<http://foo.baz/resource/1> <http://foo.baz/vocab#myProperty> "value" .

Base specified, vocab default: cow_tool build myfile.csv --base=http://foo.baz/resource/:
<http://foo.baz/resource/1> <http://data.iisg.amsterdam/vocab#myProperty> "value" .

And vocab specified, base default: cow_tool build myfile.csv --vocab=http://foo.baz/vocab#:
<http://data.iisg.amsterdam/resource/1> <http://foo.baz/vocab#myProperty> "value" .

And in all this the base for the object is the same as the subject.
Only alternatives to this that I see are (i) not allowing specifying only one of the two, i.e. specify none or both; (ii) inferring vocab from base or the other way around. Latter seems a lot of trouble for something that is not that much to ask from the user.

Thanks @rijpma . I like the logic, just changed the uri (https rather than http and filename_without_extension rather than /resource. Would you agree?

Agreed of course on the http/https, just me being sloppy there.
I would say resource/filename_without_extension and vocab without the further specification (as these should be shared when possible). Adding the further specification to the default is important because it we do not use it, the default behaviour is to have shared subject names across datasets, while they would usually not refer to the same entity.
One might argue that the default can include the extension -- if you want a sensible name, you'd probably specify the base.

Change list:

Change default base to https://iisg.amsterdam/<filename>
Add warning that you did not specify default base URI, using the one in the previous bullet
Change default propertyUrl to https://iisg.amsterdam/<c.csvw_name>
Default propertyUrl's should take the form of <base>/vocab/<COLUMN_NAME>


Spring boot 2 update

Upgrade to spring boot 2.1.x

we'll need to merge this quick. Otherwise we will have a lot of conflicting in the future

I would merge this if the tests are ok. The SickNote statistics (http://localhost:8080/web/sicknote/statistics) looks good.


Add support keychain and Bumps globaloffensive from 3.1.0 to 3.2.0.

Summary of Changes:

Bumped globaloffensive from 3.1.0 to 3.2.0.
Bumped steam-user from 4.29.1 to 5.2.0.
Added support for keychains in item data.

Detailed Changes:

globaloffensive v3.2.0 now supports keychains:
The keychains field has been added to the items table to store keychain data. Each keychain has a unique identifier, similar to paintseed and paintindex.
steam-user upgrade to 5.2.0:
This upgrade resolves a known issue where the app would quit unexpectedly due to a buffer-related error. More details can be found here: RangeError: err_buffer_out_of_bounds.
The keychains field is added to the items table to store the keychain data, because each keychain has a unique number similar to paintseed and paintindex.

Example of Keychain Data:
{
    "iteminfo": {
        "stickers": [],
        "keychains": [
            {
                "slot": 0,
                "sticker_id": 26,
                "pattern": 34826,
                "name": "Backsplash"
            }
        ],
        "itemid": "39944764900",
        "defindex": 1355,
        "paintindex": 0,
        "rarity": 3,
        "quality": 4,
        "paintseed": 0,
        "inventory": 256,
        "origin": 0,
        "s": "76561198291921905",
        "a": "39944764900",
        "d": "2795652543548536571",
        "m": "0",
        "floatvalue": 0,
        "high_rank": 1,
        "low_rank": 1,
        "min": 0.06,
        "max": 0.8,
        "weapon_type": "Charm",
        "item_name": "-",
        "rarity_name": "High Grade",
        "quality_name": "Unique",
        "origin_name": "Timed Drop",
        "full_item_name": "Charm | Backsplash"
    }
}

Example of a Weapon with Keychain Data:
{
    "iteminfo": {
        "origin": 8,
        "quality": 9,
        "rarity": 3,
        "a": "39944034003",
        "d": "7514256289686965781",
        "paintseed": 238,
        "defindex": 19,
        "paintindex": 335,
        "stickers": [
            {
                "stickerId": 6704,
                "slot": 1,
                "wear": 1,
                "codename": "paris2023_team_blst",
                "material": "paris2023/blst",
                "name": "BLAST.tv | Paris 2023"
            },
            {
                "stickerId": 6680,
                "slot": 2,
                "wear": 0.45351898670196533,
                "codename": "paris2023_team_ence",
                "material": "paris2023/ence",
                "name": "ENCE | Paris 2023"
            },
            {
                "stickerId": 7049,
                "slot": 3,
                "wear": 0.24873122572898865,
                "codename": "paris2023_signature_woro2k_1",
                "material": "paris2023/sig_woro2k",
                "name": "Woro2k | Paris 2023"
            },
            {
                "stickerId": 7242,
                "slot": 2,
                "rotation": 18,
                "offset_x": -0.6566545963287354,
                "offset_y": -0.028296619653701782,
                "codename": "paper_angry_t",
                "material": "community/community_2024/paper_angry_t",
                "name": "Angry T"
            },
            {
                "stickerId": 7663,
                "slot": 2,
                "offset_x": -0.5516186952590942,
                "offset_y": -0.06244167685508728,
                "codename": "cph2024_signature_isak_1",
                "material": "cph2024/sig_isak",
                "name": "isak | Copenhagen 2024"
            }
        ],
        "floatid": "39944034003",
        "keychains": [
            {
                "sticker_id": 32,
                "slot": 0,
                "pattern": 59677,
                "name": "Stitch-Loaded",
                "offset_x": 8.399561882019043,
                "offset_y": 1.0077831745147705,
                "offset_z": 6.040674686431885
            }
        ],
        "low_rank": 1,
        "high_rank": 1,
        "killeatervalue": 0,
        "floatvalue": 0.060655467212200165,
        "s": "76561198291921905",
        "m": "0",
        "imageurl": "http://media.steampowered.com/apps/730/icons/econ/default_generated/weapon_p90_an_royalbleed_light_large.58dfb4851908d78c31e205477793a620923737db.png",
        "min": 0,
        "max": 0.35,
        "weapon_type": "P90",
        "item_name": "Module",
        "rarity_name": "Mil-Spec Grade",
        "quality_name": "StatTrak™",
        "origin_name": "Found in Crate",
        "wear_name": "Factory New",
        "full_item_name": "StatTrak™ P90 | Module (Factory New)"
    }
}

Thanks for the review!

Hi @wangxingzhen, thanks for you precious work.
I noticed the cache mechanism for charms is being skipped entirely because of their float value being equal to 0.
You can easily fix this by expanding the check responsible to skip the postgres table INSERT operation in postgres.js (your code, as the original one from @Step7750, is covering only the Vanilla Karambit special case):
if (item.floatvalue <= 0 && item.defindex !== 507 && item.defindex !== 1355) ...
I might be wrong but the defindex for charms should always be that 1355 value
cheers, gaelsuv

Hi @wangxingzhen, thanks for you precious work. I noticed the cache mechanism for charms is being skipped entirely because of their float value being equal to 0. You can easily fix this by expanding the check responsible to skip the postgres table INSERT operation in postgres.js (your code, as the original one from @Step7750, is covering only the Vanilla Karambit special case): if (item.floatvalue <= 0 && item.defindex !== 507 && item.defindex !== 1355) ...
I might be wrong but the defindex for charms should always be that 1355 value
cheers, gaelsuv
EDIT: there's more stuff to do but modifying that check is a must

Hi @gaelsuv .First of all, thank you for your feedback.  I believe you’re referring to the cache handling of charms data.  I added item.defindex !== 1355 because charms have a pattern field, similar to weapon paintseed, and I think it's necessary to cache them.  Without this condition, charms would skip caching.
Additionally, I noticed that globaloffensive returns stickerId for stickers but sticker_id for keychains.  Should we unify these fields?  Looking forward to your thoughts.
Please let me know if I understood your suggestion correctly.   Since my English isn't perfect, I want to make sure I didn't miss any important details. Thanks again for your feedback.  I appreciate your patience and look forward to your response.

Hi @wangxingzhen, thanks for you precious work. I noticed the cache mechanism for charms is being skipped entirely because of their float value being equal to 0. You can easily fix this by expanding the check responsible to skip the postgres table INSERT operation in postgres.js (your code, as the original one from @Step7750, is covering only the Vanilla Karambit special case): if (item.floatvalue <= 0 && item.defindex !== 507 && item.defindex !== 1355) ...
I might be wrong but the defindex for charms should always be that 1355 value
cheers, gaelsuv
EDIT: there's more stuff to do but modifying that check is a must

Hi @gaelsuv .First of all, thank you for your feedback. I believe you’re referring to the cache handling of charms data. I added item.defindex !== 1355 because charms have a pattern field, similar to weapon paintseed, and I think it's necessary to cache them. Without this condition, charms would skip caching.
Additionally, I noticed that globaloffensive returns stickerId for stickers but sticker_id for keychains. Should we unify these fields? Looking forward to your thoughts.
Please let me know if I understood your suggestion correctly. Since my English isn't perfect, I want to make sure I didn't miss any important details. Thanks again for your feedback. I appreciate your patience and look forward to your response.

Hello @wangxingzhen, I've deleted my comment because I was facing a completely different problem coming from my client interaction with the API response. I might have spotted a different bug though: are we sure the current upsert logic on items table is correct? I noticed the merge tuple is (defindex, paintindex, paintwear, paintseed), which for charms right now should be always (1355, 0, 0, 0). Am I missing something?
thanks

I am trying to inspect charm on steam (steam://rungame/730/76561202255233023/+csgo_econ_action_preview%20M5252977499532233326A39982530324D12117712579169360507), and I am getting response without charm pattern.
{
"iteminfo": {
"stickers": [],
"itemid": "39982530324",
"defindex": 1355,
"paintindex": 0,
"rarity": 4,
"quality": 4,
"paintseed": 0,
"inventory": 125,
"origin": 0,
"s": "0",
"a": "39982530324",
"d": "12117712579169360507",
"m": "5252977499532233326",
"floatvalue": 0,
"min": 0.06,
"max": 0.8,
"weapon_type": "Charm",
"item_name": "-",
"rarity_name": "Remarkable",
"quality_name": "Unique",
"origin_name": "Timed Drop",
"full_item_name": "Charm"
}
}
How can I get pattern or it is not possible?
Also trying to inspect skin with Charm (steam://rungame/730/76561202255233023/+csgo_econ_action_preview%20S76561199175645974A39945477466D4676502401872163723) that's response:
{
"error": "Valve's servers didn't reply in time",
"code": 4,
"status": 500
}

I am trying to inspect charm on steam (steam://rungame/730/76561202255233023/+csgo_econ_action_preview%20M5252977499532233326A39982530324D12117712579169360507), and I am getting response without charm pattern. { "iteminfo": { "stickers": [], "itemid": "39982530324", "defindex": 1355, "paintindex": 0, "rarity": 4, "quality": 4, "paintseed": 0, "inventory": 125, "origin": 0, "s": "0", "a": "39982530324", "d": "12117712579169360507", "m": "5252977499532233326", "floatvalue": 0, "min": 0.06, "max": 0.8, "weapon_type": "Charm", "item_name": "-", "rarity_name": "Remarkable", "quality_name": "Unique", "origin_name": "Timed Drop", "full_item_name": "Charm" } } How can I get pattern or it is not possible?
Also trying to inspect skin with Charm (steam://rungame/730/76561202255233023/+csgo_econ_action_preview%20S76561199175645974A39945477466D4676502401872163723) that's response: { "error": "Valve's servers didn't reply in time", "code": 4, "status": 500 }

It seems that your code does not utilize the code from this PR.

    "keychains": [
        {
            "sticker_id": 32,
            "slot": 0,
            "pattern": 59677,
            "name": "Stitch-Loaded",
            "offset_x": 8.399561882019043,
            "offset_y": 1.0077831745147705,
            "offset_z": 6.040674686431885
        }

This is cool, but maybe naming the field "paintseed" instead of "pattern". It confuses my code :)

    "keychains": [
        {
            "sticker_id": 32,
            "slot": 0,
            "pattern": 59677,
            "name": "Stitch-Loaded",
            "offset_x": 8.399561882019043,
            "offset_y": 1.0077831745147705,
            "offset_z": 6.040674686431885
        }

This is cool, but maybe naming the field "paintseed" instead of "pattern". It confuses my code :)

At first, I was as confused as you, and I was also entangled, but the cs2 proto code was named like this, and I chose to be consistent with cs2.

Thanks for this repo!

Hi, thank you for your interest!  I’ve already submitted the PR, and it’s currently waiting for the author’s review.  I’m looking forward to any feedback or suggestions from them.  Thanks again for supporting this repo!

@Step7750 Hi, can you please review changes and approbe this PR, also waiting this. Thanks!

Also patiently waiting for the approval of this PR :)


onPress to onPressIn

Change onPress to onPressIn to smooth the behavior of tag deletion.

There seems to be a merge conflict, maybe because changes from the other pull requests you've made.
Do you have time to look into this?! @mikunimaru  :)
Thanks!


Add git decoration colors for tab labels

I might open a PR for this myself, but it takes some sorting out with all the theme variances.
I see there's a number of implemented properties already, but I notice some of the tab decorations stand out since they fall back to the default colors.
This this is the full list of git decoration colors

Thanks @rpbaptist
Would you be able to open a PR? If not, I'm happy to have a look when I sort out some time.


Allow spinning up a web server and JSON api?

This is more of a fun demonstration of what's it capable of, but could also help for integrating with other programming languages.
Should be fairly easy and with almost no boilerplate because namedtuples/dataclass map nicely into JSON.

It would also open up building SPAs and mobile apps

Could possibly be done with something similar to how hpi doctor tries to import the stats function, perhaps that could even be reused here.

Yep! For example, it could discover data providers by type annotations (e.g. pandas.DataFrame), or if they are marked by some decorators.

Been playing around with fastapi and pydantic a bit; feel like they might integrate nicely here -- especially if the NamedTuples can be converted by inspecting the type hints; that would mean all the routes would generate dynamically.
pydantic allows for NamedTuple-like model definitions to be automatically serialized/deserialized into JSON for APIs, FastAPI uses pydantic when creating routes, and also creates an OpenAPI spec/dashboard for all your routes, which would allow for easy testing/prototyping for free.
Not high on my priority list, but will probably try and create a prototype soon.

Nice! I've had pydantic on my todolist as well, e.g. I like the idea of nicer exceptions: https://pydantic-docs.helpmanual.io/#example
My only worry from a quick glance was that it enforces inheriting from a BaseModel, and how it would play with mypy (there's something about a plugin?). But if it's easy to swap out BaseModel for NamedTuple (or anything else, as long it's got the same interface, i.e. duck type friendly), I guess it's ok.

Have a pretty decent prototype up, Flask correctly serializes all of my data (though I havent tried with dataframes and the like, but this calls iter on the result, so most things seem to work)
https://github.com/seanbreckenridge/HPI_API
After: pip install git+https://github.com/seanbreckenridge/HPI_API
$ hpi_api sever
$ curl 'localhost:5050/my/zsh/history?limit=3'
{"items":[{"command":"z","dt":"Mon, 18 May 2020 08:23:22 GMT","duration":0},{"command":"en env_config.zsh","dt":"Mon, 18 May 2020 08:23:22 GMT","duration":0},{"command":"ls","dt":"Mon, 18 May 2020 08:23:22 GMT","duration":0}],"limit":3,"page":1}
 $ curl 'localhost:5050/my/github/all/events?limit=1' | jq -r '.items | .[0]'
{
  "body": "Note: This is used for [gitopen](https://github.com/seanbreckenridge/dotfiles/commit/4c57fd97cbb2605e63d0cf5d2af37039fe6e6d35)",
  "dt": "Thu, 14 Feb 2019 21:05:40 GMT",
  "eid": "commoit_comment_https://github.com/seanbreckenridge/mac-dotfiles/commit/d4ac3c30dd3df1b626f92eb61f651a27852ff86f#commitcomment-32324943",
  "is_bot": false,
  "link": "https://github.com/seanbreckenridge/mac-dotfiles/commit/d4ac3c30dd3df1b626f92eb61f651a27852ff86f#commitcomment-32324943",
  "summary": "commented on https://github.com/seanbreckenridge/mac-dotfiles/commit/d4ac3c30dd3df1b626f92eb61f651a27852ff86f#commitcomment-32324943"
}
$ curl 'localhost:5050/my/mpv/stats'
{"history":{"count":5861}}

If you end up testing, let me know if you have any suggestions/changes.
Not sure if this should be merged into here/kept separate, I'm fine either way.
Sidenote:
Initially tried to use FastAPI, but since all of this is dynamic, it just feels like I'm fighting with its JSON encoder and its class-model based approach. Would have to some serious metaprogramming/class generation and it didn't seem worth it.
Custom Encoders through its json_enodable function run before any custom ones I define, so its not possible to serialize custom types
at that point, I'm getting none of the benefits of the types that pydantic gives me, so its not particularly worth to use it

Whoa, this is awesome, well done! Very cool that it seems pretty compact.
I'll definitely try it out in a couple of days, a bit busy ATM.

Not sure if this should be merged into here/kept separate; linked to, I'm fine either way.

Yeah.. I guess for now OK to keep in a separate repo and play around with it.. I guess in principle would be cool to keep decoupled if possible, although if it ends up being compact and generic enough, doesn't hurt to keep in the 'main' package, I guess.

in principle would be cool to keep decoupled if possible

The only real 'dependencies' it has on HPI are in the discovery file, using core_config to check if modules are disabled, and the modules function from my.core.util to iterate through modules.
Otherwise it just uses inspect and importlib like usual to discover/generate the routes.

@seanbreckenridge sorry for the delay, was busy with other stuff. Just properly checked it out and it's brilliant, worked flawlessly!
I wanted to do a proper demo in an Observable notebook connected to HPI on my computer (via a proxy): https://observablehq.com/@karlicoss/hpi_meets_http
However it turned out that I can't export static HTML in observable, and of course it can't request the data unless I keep the server running... So I just did a screenshot :shrug:

Some potential ideas for the future:

for iterable outputs might be cool to use streaming HTTP, i.e. stream of jsons (don't remember how to do this exactly, but pretty sure it's possible?)
pagination should ideally be via cursors rather than pages?
The tricky bit I'd imagine is that you need some uniform 'entity id' or timestamp for that. On the other hand it's another thing that would be very useful for other purposes :)
I guess eventually need to think about caching
Perhaps generally the approach to caching needs to be brainstormed, there are still some rough edges around cachew
Had to disable CORS to experiment (have to admit I always struggle with it, guess I need to properly learn about it...) -        return jsonify(obj), 200
 +        response = jsonify(obj)
 +        response.headers.add("Access-Control-Allow-Origin", "*")
 +        return response, 200

Maybe the cli needs --no-cors option? Although I don't know Flask, maybe it's already possible to control via some setting/env variable?

CORS slipped my mind, added a flag to enable/disable it, is enabled by default.

Maybe the cli needs --no-cors option? Although I don't know Flask, maybe it's already possible to control via some setting/env variable?

Typically people will recommend to just use flask_cors, but I just added a hook.

for iterable outputs might be cool to use streaming HTTP

havent done this before, will have to look into it

Regarding pagination, I initially just went with limit/page since it seemed to be the easiest to implement for unknown data. All I'm really doing right now is calling iter on it.

The tricky bit I'd imagine is that you need some uniform 'entity id' or timestamp for that

I suppose the only issue with using the default hash function is that theres nothing that says a function in HPI can't return duplicate items, so that would cause conflicts with where the cursor would be placed.
Not saying it can't be done, I'm just at a loss other than like... storing a large sequence of hash values in memory leading up to the cursor and searching for that? Seems quite finicky, unsure.
Perhaps the user has to specify an attribute on the object that acts as the hash key as a GET arg?

Caching

I don't think this has to interface with cachew, that and any other major caching/processing should be handled in HPI
It would be nice if 'n most recent' sort/order_by results were cached, as one would probably be requesting the same route with different offsets/cursor -- Would be possible to save some sorted results in memory.
None of these feel like great solutions though - it's difficult to draw a line in the sand and reason about what should be done for data returned from arbitrary HPI functions.


Submit to Elgato Plugin Store

Submit the AdGuard Home plugin to the Elgato Stream Deck Plugin Store

@mdawsonuk do you still plan on submitting this to Elgato? are you looking for someone to take on the effort?


Allow array results to be displayed in table mode

Allow array results to be displayed in table mode

Codecov Report
Attention: Patch coverage is 83.78378% with 12 lines in your changes missing coverage. Please review.

Project coverage is 80.84%. Comparing base (9da9cb6) to head (f2c7f05).

Files with missing lines
Patch %
Lines

openapi/output_filter.go
83.78%
8 Missing and 4 partials :warning:

Additional details and impacted files
@@            Coverage Diff             @@
##           master    #1164      +/-   ##
==========================================
- Coverage   80.93%   80.84%   -0.09%
==========================================
  Files          49       49
  Lines        4185     4245      +60
==========================================
+ Hits         3387     3432      +45
- Misses        656      667      +11
- Partials      142      146       +4

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.


Remove an accidental debug print

Cool, thanks. For future contributions, feel free to also add a version bump. :-)


Handle some additional wheel tags

I don't understand the failing test here, it looks irrelevant to this PR?

Yeah, failures do not look relevant at all.


Al/tsv noop

closes #24813
closes #24818

/azp run specs - typespec - pr

The failures you saw on Windows are expected for now.  This is #24791, which I will fix after this PR is merged.


isolation score

Hi
if can calculate isolation score in boundary by juicer？？？

For general questions, please use the forum: aidenlab.org/forum.html
We allow for calculation of contact domains, but you may need other software to specifically calculate the isolation score.
Have you tried https://github.com/vaquerizaslab/fanc ?


format valid macro resulting in invalid macro

i'm using rustfmt 0.4.2-nightly (dd807e24 2018-04-18) and formatting this macro
macro_rules! try_500 {
    ($res:expr) => {{
    }};
}

results in
macro_rules! try_500 {
    ($res:expr) => {{}
    }};
}

which has mismatched braces

The version I'm using claims to be from this commit, which should have the change you linked https://github.com/rust-lang-nursery/rustfmt/commit/dd807e24656c91b4ad22d3cac146edd86315e633

in fact formatting the exact one from your PR works fine, but this one does not

i'm actually having trouble reproducing this now I've said that :) please hold!

So I can do this in one project, but not the other, they're using the same install from rustup, neither has an override set. That code above in one formats badly, the code in the other formats fine. I am investigating :)

Aha, that explains it! I also have that set and every time I tested to see if the example was fixed I ran rustfmt from the same repo so it would have been picking up the configuration.


Made a formatting error on recent pull request #127

This is just fixing a formatting error on my recently merged pull. #127

That is shown on the website, and it should just say If you are unable to get the finalhe method to work for any reason, or if you own a Mac/Linux computer, the QCMA Backup method will work as well.
So I fixed it.
Additionally, the same page (https://vita.hacks.guide/installing-h-encore-(qcma).html) doesn't have the Updating Firmware...Installing Enso at the bottom like this, and is not in the sidebar like this:

It just has this:

I have no idea how to rectify this, it's probably something else that would have to be added to the internal code of the site, I guess?
Sorry for the trouble, thanks for your time, and thanks for merging my prior request!

Thank you for putting my thing into the guide, I might update the URL in the future just fyi (since its kinda long)
Might as well redo the whole thing cause spelling mistakes and stuff on the site


I can't upgrade to 1.6.4

For some reason when I try to upgrade to 1.6.4. I keep getting redirected to 1.2.0. I decided to upgrade to a pre-release version.
Every time I install Volar I'm forced to be on 1.2.0. It's even advertised as well.
What volar looks like when I'm first trying to install it

I had to switch to a pre-release version.
This is what my versioning screen looks like.

I think it is a vscode issue


Add a single command to clean build cache

Expected Behavior
I want single obvious command that cleans build cache.
Document it in https://docs.gradle.org/current/userguide/build_cache.html
Current Behavior (optional)
Currently it takes too much (when you factor in time for research for person unfamiliar with gradle) to do something that should be one liner.
Btw the instructions on https://docs.gradle.org/current/userguide/build_cache_debugging.html are incomplete, see
https://stackoverflow.com/a/23029580/443422
Context
Causes completely unnecessary waste of time

Thank you for your interest in Gradle!
This is a valid documentation issue that we will address.

This issue needs a decision from the team responsible for that area. They have been informed. Response time may vary.

@gradle/bt-execution should this command be added and this issue be requalified as a feature?

What is your use case to need to clean the build cache?

It looked like my program had stale code after move refactoring and my first suspect was gradle cache (I sometimes get some weird errors from gradle when refactoring, especially moving class from one java file to another (package private to public) so to eliminate that I wanted to clean the cache and found out it's not so simple :/
I usually just double-click tasks from Intellij so having standard cacheClean task would be a massive usability improvement and will also save other people looking for it some time.


bug: fix judgement for SetRootfsDiskQuota

Signed-off-by: Ace-Tang<EMAIL_ADDRESS>
Ⅰ. Describe what this PR did
if err != nil || overlayfs == nil

overlayfs can never be non-null, since it have been initialled in getoverlay.
The other fix is if directory is empty, set-quota will fail.
Ⅱ. Does this pull request fix one issue?

Ⅲ. Describe how you did it
Ⅳ. Describe how to verify it
Ⅴ. Special notes for reviews

Codecov Report

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

@@            Coverage Diff            @@
##             master    #2028   +/-   ##
=========================================
  Coverage          ?   63.28%
=========================================
  Files             ?      200
  Lines             ?    15525
  Branches          ?        0
=========================================
  Hits              ?     9825
  Misses            ?     4459
  Partials          ?     1241

Flag
Coverage Δ

#criv1alpha1test
33.79% <0%> (?)

#criv1alpha2test
34.26% <0%> (?)

#integrationtest
38.39% <0%> (?)

#unittest
21.05% <ø> (?)

Impacted Files
Coverage Δ

storage/quota/quota.go
19.29% <0%> (ø)

LGTM


PRODUCT - single product view

As a user, I can navigate to a page that displays the single product. I will see a large image side-by-side with its title, description, price, selected quantity, a subtotal of those items(?), and an add to cart button.
Below this, I can see all the reviews related to this product.

Product page is now displaying no matter where the user navigated from;
now working on adding reviews to the page!


Decide how to handle universal template builders

In order to simplify the average builder (and allow them to focus on the building portion rather than git operations), we replaced the base16-schemes-source repo and all the sub-repos with https://github.com/base16-project/base16-schemes.
We also dropped the base16-templates-source repo for the same reason - most builders are focused on building a single template at a time.
Unfortunately, when I wrote spec 0.10.0, I didn't consider theme managers like themix and it wasn't brought up.
I'm not sure what the best course of action is - I don't like the old setup where multiple repos have to be updated for a template to be submitted (the old setup also doesn't allow for a repo to be replaced if the maintainer becomes inactive). Eventually, I hope most of the repos are transferred to base16-project and base16-project-contrib, but until then we can figure something out.
Does anyone have any suggestions?
CC @actionless

from my side is really no difference to download themes/template from one repo or multiple:
you saw the code itself of that tool - is rly primitive 20-ish lines of code and easy to change to adapt to anything
but i'm not sure if all the scheme/template developers would be excited making a PR to some repo for every minor change

@Misterio77 may have some good insight into this topic since they've created flavours, a manager/builder for base16.

Hey folks!
Thanks for the ping! When maintaining flavours and trying to understand what workflows are most popular, I've come to a few (maybe strong) thoughts.

I understand that the spec still keeps the entry about builders managing stuff, but I don't really agree. Builders should build, managers should manage.
I think builders should be simple software, designed for scripting (aka plumbing). They should primarily expose their functionality as CLI (with the interface catered for easy CI usage), and optionally expose their functionalities as a software library (this helps building managers, our porcelain)
Exact same CLI interface, exact same features. They should be 100% drop in compatible between each other. The only difference being language, which users shouldn't care about (they won't even use them), just developers who plan on consuming the lib with their favorite language (for building managers, for example). We should have the lib for all languages possible!
With this out of the way, I'd argue builders should just have a single use: build. No git, no user data dir management, just build
Maybe something like this:
base16 template/config.yaml scheme1.yaml scheme2.yaml

Builds the templates specified on the given file with every given scheme. That's it. No pre configured scheme source, nor vendoring or cloning, or any implicit or networked behavior.
Example CI usage for a template repo:
git clone https://github.com/base16-project/base16-schemes
base16 template/config.yaml base16-schemes/*

See what I mean? It being plumbing makes it easy to use with their intended use: as a component implementing the standard.
Base16 has two main use cases we should consider:

Users who just want built template should go to the repos and grab them. I think these mostly don't care (and should not care) about builders and managers. Just simple grabbing and using, easily tweakable.

Users who frequently change themes should use a manger (which probably consumes a builder lib I mentioned), or another software who otherwise help using the base16 standard and ecosystem. These have opinionated workflows and can (and should) vary wildly! A few examples: CLI manager, GUI manager, website theming script, IDE  theming feature, Nix module, etc.

Hope this was clear and readable, and hope someone agrees with it!

About the repos:
I absolutely loved the move to a single scheme repo. Schemes are clearly something where more is best, and having quality control is paramount. So it makes absolute sense for it to be the single source of truth. People can, of course, fork it and maintain their scheme collection, easy to upstream.
About templates, I think they should exist similarly to something like nvim plugin. They are very personal and users who change schemes frequently (the usecase flavours and most managers cater to) ALWAYS tweak a few of them. So, each in their own repo, no "index" repository. A few blessed ones on the main org, some on the contrib org, a lot on their creators github account. We can handle discoverability by offering to move them to our org, otherwise no "official" list or stuff like that.
This makes changing (for example, following a fork) sources very easy.
Builders, by the way, should absolutely not care about this. Managers, on the other hand, can do whatever they want! They should dictate how users (outside of the "go to repo and download theme you like" usecase) manage their templates.
For example, flavours' configs could expect repository URLs (such as github:example/template, or relative file paths) instead of names.

Phew, long write.
TL;DR: Builders should just build exactly the same way, and be optimized for scripting (with a stable and CLI uniform interface) and lib usage. Managers should dictate the workflow. Central schemes are great. Templates should just be repositories on our orgs or not, the manager will help them download and use their desired templates
Results: Easy and predictable CI usage. Easy manager implementation. Trivial builder implementation. Uniform usage of base16 libs across languages (or scripting), so people can build awesome stuff without thinking about how they will implement `{{ base00-dec-g }}|!

The node builder just looks into:

base16/schemes/*.yaml
base16/templates/*/template

It doesn't care how the schemes or templates get there...  For single template maintainers it's pretty easy, just git clone two repos...  If someone wants to build 100 templates (at once) they just have to checkout all those repos (there is no automated facility to do that).
If someone had to script the builder in a loop though per template that wouldn't bother me, but I already had the multi-build functionality so I just left it after ripping out all the git checkout stuff...

@joshgoebel how maintaining readme is easier than maintaining literally same list but in yaml as it was for years in original project before fork?

how maintaining such list in a readme is easier

A README (or other markdown doc) is easier to read and more accessible to humans, which is the audience I think we should most care about.

can't read yaml

Please don't put words in my mouth. I said "easier to read"...
If you don't see how the table example I linked to is more immediately readable and scan-able (at a glance) then nothing I say is going to persuade you, so I won't even try.  I'll let readers of this thread come to their own conclusions.

even if assuming what markdown would be easier to read than yaml list:
what would be easier for such easy user which you trying to paint here - to manually copy-paste the things to some config or even manually clone some repo or just choosing the theme in dropdown in gui tool or running builder-cli --list-templates, etc?

Please remember to keep it civil - it's clear there are some strong opinions here. Try to take the approach that everyone here has the best interests of the project in mind, even if they have different goals.

@actionless I think we're talking about two very different problems:

Ease of a machine building/fetching/listing all templates
A human learning about what programs support Base16 themes

I'm proposing a solution that works well for 2 yet is also easily usable (with a simple URL fetch/regex) for 1... where-as I don't think a key: url YAML file solves need 2 quite as nicely at all.  Although one could perhaps build a NICE Markdown file/table from the yaml file (if more meta-data was added)... though again I think case 1 is a bit of an edge case...
I think consumers of base16 far outweigh maintainers... and that consumers and maintainers (of a single theme) far, far outweigh services choosing to "build the base16 world".  I personally see that as a specialized edge case.
But right now I find it quite lacking the meta-data I'd like to see in a central list (no author names, no human readable theme names, only slugs, etc)...

There are plenty of things about that yaml that's not as accessible to humans, especially for non-programmers:

@belak Thanks for jumping in here with a list. :-)

also for such usecase it would be useful to have smth like description field there:
https://github.com/aarowill/base16-alacritty/blob/master/templates/config.yaml

but I'm not sure why you'd need a picker of all templates?

to not pick them manually from some web page and download them one by one with hands, but to have them already there and just to pick from dropdown which user needs for their setup - if they need theme for vscode or for terminal or for both

I'm starting to maybe understand your use case...

Oh this theme in VS Code is just so cool - I think I want to install it in Terminal and Vim as well.

I'm not sure that problem is best solved by downloading templates one by one (regardless of how easy) and building themes by hand... and as @belak pointed out it's not super useful to just build the themes but not install them, and installing could be a whole can of worms...
I'd wager (though I can't back this up) that many/most theme consumers are going to download the themes from "cooked" repos... not download template/builder and build them by hand.

pointed out it's not super useful to just build the themes yet not install them
installation is not yet supported and can't be supported before this will be addressed in template spec:

and suggested output directory path (unless existing field output was already meant for that and being misused - i can't really figure that part out yet)

I'd wager (though I can't back this up) that many/most theme consumers are going to download the themes from "cooked" repos... not download template/builder and build them by hand.

for this usecase having universal template builder with all the templates at once actually would be useful, however i was never considering such usecase in mind

Sorry for cross post, but this belongs here:
I'm becoming less and less enamored with a builder spec... esp at the level actionless is desiring (and what perhaps we had before)... I think our goal (over time) should be to preserve compatibility with converting schemes into themes using templates generally speaking... not that the exact command line arguments and process for doing so should be set in stone.
I find this an onerous requirement and I honestly don't feel like the project or it's contributors have that kind of time.
I think if someone wants to maintain such a thing they should do it with some small wrapper scripts around one of the official builders... I don't think it needs to be baked into the Base16 spec itself.

installation is not yet supported

If you asked me personally this is out of scope for the project and if anything more a discussion first for templates than for builders...

(creating cooked-up repo with many app-configs for your color-scheme)

That's what several/many of the existing templates do - publish the cooked themes in the same repository as the template... for example: https://github.com/highlightjs/base16-highlightjs

That's what several/many of the existing templates do - publish the cooked themes in the same repository as the template... for example: https://github.com/highlightjs/base16-highlightjs

the counter-example of the opposite approach: https://github.com/aarowill/base16-alacritty/tree/master/colors
the rest is only your subjective opinion not really backed with anything which would explain why tidy machine-readable list of templates must be downgraded to chaotic human-written text document

i think previously-proposed idea for generating any user-facing docs from yaml should fit all possible usecases, whilst implementation of such GH-Action is more than trivial

the rest is only your subjective opinion not really backed with anything which would explain why tidy machine-readable list of templates must be downgraded to chaotic "human-readable" (i've already pointed out why i am ironically puting this into quotes) text document

This is a bit passive aggressive. We have already given a number of reasons of why we've focused on the human readable list before adding back the machine-readable one:

We primarily cater to people who use the base16 themes: there are many more people using these themes than maintaining them.
There hasn't been a strong use case made for software which generates all themes. The primary reason to generate multiple themes would be something which installs them as well and they'd need a custom method of supporting different themes anyway (installing the emacs theme is very different from installing the vim theme, etc).

the counter-example of the opposite approach: https://github.com/joshwlewis/base16-unikitty (sorry i first put alacritty instead of unikitty, as both sounded similar to me)

This is a color scheme rather than a template. I'm aware there are templates which don't provide generated files, but as we migrate more schemes into this org, we've been setting up CI which automatically builds and commits all the generated themes. This is most likely the path we'll continue on for now, so that is our primary use case.

i think previously-proposed idea for generating any user-facing docs from yaml should fit all possible usecases, whilst implementation of such GH-Action is more than trivial

This does seem fairly reasonable - I don't see a reason we couldn't add that to this repo and close this discussion. PRs would be welcome.

add that to this repo
then, the final point would be to deceide on the repo(s) where that yaml index and generated markdown would be

the final point would be to deceide on the repo(s) where that yaml index and generated markdown would be

It would be in this repo and it would update the README.md. I want people adding a template to only have to do it in 1 repo - as someone who was in charge of that with the old setup, it's a pain tracking both of those PRs and not something I'm willing to continue doing.

i think instead of having it in readme, it would be better to have TEMPLATES_LIST.md linked from a readme - it would help to keep readme much more laconic for reading

it would be better to have TEMPLATES_LIST.md (or just TEMPLATES.md mb) linked from a readme

I have to agree here (though perhaps we can still find a slightly better name)... a separate file for a long list that never gets caught up in merge conflicts with the README is the way to go IMHO.

alright, then i'll try to implement the pipeline this weekend

Shouldn't we first agree what needs to go in that file?
The original list seems to have had:

maintainer github username,  link to maintainer
nice name of template
link to github repo for template

Do we need anything else?  I think we'll (soon) need to know which versions of the spec a template supports - if this list is supposed to be useful for automated tooling... (not sure if we'd surface that in the markdown though)

for providing any other information which couldn't be extracted from template name or URL - the spec for templte's config.yml should be updated https://github.com/base16-project/base16/issues/3#issuecomment-1172514481

I'm all for adding a description field.

so instead of reading my motivation in my messages in related topic and arguing against them you decided to argue against what, as you can imagine, would be my motivation? this is just wrong at all levels

No.  If I was straw-manning you it was certainly not intentional.  Moving this back on topic (I think)... if not please create a new issue regarding your specific concern (since you seem to say now it's not build all)... it's possible it's gotten lost in all the words and a single clear paragraph of your use case in a separate issue would provide enlightenment.

it described all along this thread, mainly in https://github.com/base16-project/base16/issues/3#issuecomment-1172509409

Yes, I responded: https://github.com/base16-project/base16/issues/3#issuecomment-1172539369
I'm honestly very curious to see what you' build with this index once you have it back...  :-)

I would also like to argue that we should keep this index out of the spec for now - it will let us iterate on it now and potentially formalize it later.

No argument from me on that point.

I think we're going to drop this for now - I would love to see a proposal around this, or some sort of "manager" which handles this, but I don't think we have any plans to work on it.
Hopefully a proposal would be able to answer the following questions:

What happens when a template repo is down/gone?
What happens when a template fails to compile?
How will repo moves be tracked?
What happens when a template needs a non-standard builder (such as a few which need to export binary files)?

Those are all issues we ran into in the past, and based on how the early builder specs were worded, it caused builds to fail for unrelated templates multiple times.


Update to Swift 5.3

This PR was built on top of https://github.com/Moya/Moya/pull/2120 and updates CircleCI's Xcode version to 12.3.0 and the Swift version to 5.3.

I'm closing this one as I won't have time to fix it in the near future. If anything changes, I'll reopen it.

I'm closing this one as I won't have time to fix it in the near future. If anything changes, I'll reopen it.


fix: select fix blur

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

npm package (@latest dist-tag)
GitHub release

Your semantic-release bot :package::rocket:


ipWhiteList - Variable depth in X-Forwarded-For header

Welcome!

[X] Yes, I've searched similar issues on GitHub and didn't find any.
[X] Yes, I've searched similar issues on the Traefik community forum and didn't find any.

What did you expect to see?
Hello,
I have the use-case where i want to use IP whitelisting on a specific path based on the original Source IP range. I want to allow local ranges (<IP_ADDRESS>/8, <IP_ADDRESS>/24...) + some other ones (accessible from the outside world).
Problem is we have a WAF (Imperva) which adds a source IP in the X-Fowarded-For header if the traffic comes from the Internet, but we do not have this IP if the traffic comes from the local network.
So the whitelisting rule has a variable depth which I do not know in advance, obviously.

On this illustration, all I want is to make the middleware control the "last" (when reading from right to left, like Traefik) IP,
which is the green one above.
I cannot skip Imperva ranges (using ipStrategy.excludedIPs in the middleware) because doing so, the depth parameter won't be taken into account, and I cannot add local ranges to the excludedIPs because they are part of the whitelisting rule (I want to allow them if they match the Client source IP).
Could we add some mechanism which allow Traefik middleware to read from left to right? Or to match only on the "deepest" source IP in the header?
I tried with multiple middlewares (each one using a different depth and allowing a range group) but then I hit this issue.
Traefik version: 2.6.0

Hi! I'm Træfiker :robot: the bot in charge of communication regulation.
Thanks for your interest in Traefik!
We dedicate the issue tracker to bug reports and feature requests only. My advanced AI has spotted that your issue might be a configuration problem or relates to something that doesn't look like a bug.
To confirm this, please join our Community Forum and reach out to us on the Traefik section.
In case I'm wrong (well, that would be embarrassing :sweat_smile:), my developers will re-open the issue and fix me!
In the meantime, you can double check Traefik's documentation.


Implement ChoiceQuestion

Current dependencies on/for this PR:

main

PR #49

PR #50

PR #51   👈

This comment was auto-generated by Graphite.


Issue with avatar height and cell height

When JSQMessagesAvatarImage have greater height than JSQMessagesCollectionViewCell image is cropped to cell bounds. I have modified the JSQMessagesCollectionViewFlowLayout.m to make cell size always greater or equal to avatar image.

JSQMessagesCollectionViewFlowLayout.m

  - (CGSize)sizeForItemAtIndexPath:(NSIndexPath *)indexPath
 {
      CGSize messageBubbleSize = [self messageBubbleSizeForItemAtIndexPath:indexPath];
        JSQMessagesCollectionViewLayoutAttributes *attributes = (JSQMessagesCollectionViewLayoutAttributes *)[self layoutAttributesForItemAtIndexPath:indexPath];

    CGFloat finalHeight = messageBubbleSize.height;
    finalHeight += attributes.cellTopLabelHeight;
    finalHeight += attributes.messageBubbleTopLabelHeight;
    finalHeight += attributes.cellBottomLabelHeight;

    //FIXME: SIZE AVATAR

    //CGSize avatarSize = [self jsq_avatarSizeForIndexPath:indexPath];

    if (finalHeight < avatarSize.height)
        return CGSizeMake(self.itemWidth, avatarSize.height);

    return CGSizeMake(self.itemWidth, ceilf(finalHeight));
}

Now I have the different issue. The message bubble is also resized. It's ok with longer text, but on single line text messages the bubble have bigger bottom margin. Here are the screenshots

duplicate of #564


Add Preview Label to Sentence Similarity Scenario

Similar to Text Classification scenario, add "Preview" label to Sentence Similarity scenario in scenario screen.

It is already labeled  as preview


trained model there are no detections

Training from scratch without pretrained model, the model can not predict anything:

https://www.mediafire.com/file/93l5l22mgj7dz59/voc_mb2_ssdlite_deploy.prototxt/file
https://www.mediafire.com/file/16d5e532b4hs7xx/voc_mb2_ssdlite_deploy.caffemodel/file

Above prototxt and caffemodel train on VOC for 120000 iters, but can not got any results


[Feature request] skip files and directories with long name

Hi
I tried this app and it looks really helpful, thanks for the development so far.
I tried to sync from my android to my NAS (Synology DS220j). This uses eCryptFs for the encryption, which restricts the filename length to 143, and Synology seems to restrict this further to 130 characters. With 131 characters I get the error: The filename, directory name, or volume label syntax is incorrect.)
Could you add a funtionality similar to the  "skip directory and file names that contain invalid characters (",:,,*,<,>,|)" option, to skip directory and file names with more than 130 (or variable number of) characters?
Alternatively the option to sync to a .zip file via smb would work as well I would guess.
If I missed an exisisting method to work around this, I would be glad to hear about it.

Hi,
Sorry for late response.
Add an option to ignore the file if the length of the file name is longer than the specified value. Please wait for about a week while we create a test APK.
Best regards.

Hi,
The option "Ignore files with file names longer than specified length" has been added, so please install and check it.

Please note that the APK is signed with the same signature key as the Google Play Version.
SMBSync2_2.53_285_release_test_01.apk.zip

Hi,
I tried the apk. Unfortunately it looks like it does not only skip the file but stop the whole sync process after the first file to skip and the rest of the files is not synced

Hi,
Fixed a bug that caused processing to stop.
SMBSync2_2.53_285_release_test_02.apk.zip
Best regards.

Thank you for implementing the feature, it works great now.

Hi,
Version 2.53 released to GooglePlay.
Best regards.

Closed.


Added name/value for object assignment pattern in javascript

I'm not sure if the facet names are correct for this. I picked the one I thought was closest.
Checklist

[x] I have added tests
[/] I have updated the docs and cheatsheet
[/] I have not broken the cheatsheet

Absolutely. I've added tests for that now.


Incorrect custom git credentials results in persistent account lockout

Environment
Device and OS: Redhat
App version: v0.32.6
Kubernetes distro being used: RKE2
Other:
Steps to reproduce

Deploy init package with incorrect password/token for custom git credentials

Expected result
Zarf attempts to login a few times and reports back if the credentials are incorrect
Actual Result
Zarf blasts the git server with auth attempts indefinity locking out the users account and relocking it within seconds of unlocking
Visual Proof (screenshots, videos, text, etc)
Severity/Priority
medium
Additional Context
Add any other context or screenshots about the technical debt here.

disregard!! This was not related to Zarf but is a bug in rancher. Just happened we had deployed an init package at the same time and after wiping Zarf from the cluster we tracked it down to a rancher gitops config.


derive index.js and index.d.ts from canonical list of method names

This pull request supersedes #270, which included a few unrelated changes which have since been rendered unnecessary (#293).
Like #270, this pull request avoids npm dependencies by using standard Unix programs to generate index.d.ts. The awk script is just a single line:
awk '{ print "export const " $0 ": \047fantasy-land/" $0 "\047;" }' names >index.d.ts

Unlike #270, this pull request uses string literal types in index.d.ts rather than the far less specific string type. I'm not a TypeScript user so I would greatly appreciate a review by @bcherny, @andnp, @sunderhus, or anyone else in the community with TypeScript knowledge. :)
This pull request also updates CONTRIBUTING.md with instructions for updating the various files, and updates the behaviour of npm run lint such that ignoring these instructions will result in an error.

Looks good to me. The types are correct and given how simple they are generating them in the proposed manner seems reasonable.

@davidchambers Sounds good. I’m not sure I’d make the same decision, but thanks for taking the time to clarify! TS looks good to me. One note- it looks like the generated JS use ES5-style exports, but the generated TS uses ES6-style exports. If I’m reading that right, I’d suggest sticking to one or the other.

One note- it looks like the generated JS use ES5-style exports, but the generated TS uses ES6-style exports. If I’m reading that right, I’d suggest sticking to one or the other.

Restricting the JavaScript file to ES5 syntax enables it to be used as is in environments (such as Node) which don't support import/export. Given that TypeScript files must necessarily be processed before being evaluated, is there a reason not to use export and const in that context?

@davidchambers It's just another small deviation from standard TS practice (declare in TS + ES6, compile to JS + ES5 with tsc). Looks good to me!

I'm no shell scripting expert, but, is there any reason for not making the scripts #!/bin/sh POSIX compatible? As far as I can tell they don't use any bashisms.

I like to understand the code I write, but with shell scripts I'm not averse to cargo cult programming. ;)
This pull request has been open for a year and a half. Let's merge it. I would not oppose a pull request to change the shebangs, but I'm confident #!/usr/bin/env bash will not cause us any problems.


Blank line between messages

Just a suggestion for a configuration option to include blank lines between lines added to chat logs.
See: http://forums.achaea.com/discussion/2661/yatco-23-line-spacing-in-all-tabs

Good idea, I'll try to include it with the other changes I'm looking at today.

new config option: demonnic.chat.config.blankline
code to insert after copy()
if demonnic.chat.config.blankline then
demonnic.chat.windows[chat]:echo("\n")
if demonnic.chat.config.Alltab then
demonnic.chat.windows[demonnic.chat.config.Alltab]:echo("\n")
end
end

Included in EMCO 1.1 (github.com/demonnic/EMCO)


and, or, and not for Fbe::Award

@rultor release, tag is 0.0.36

@rultor release, tag is 0.0.36

@yegor256 OK, I will release it now. Please check the progress here

@rultor release, tag is 0.0.36

@yegor256 Oops, I failed. You can see the full log here (spent 8min)
            lib/fbe/fb.rb:34:in `fb'
            lib/fbe/award.rb:53:in `initialize'
            test/fbe/test_award.rb:117:in `new'
            test/fbe/test_award.rb:117:in `block in test_some_policies'
            test/fbe/test_award.rb:116:in `each'
            test/fbe/test_award.rb:116:in `test_some_policies'

  test_simple                                                    \u001b[31mERROR\u001b[0m (0.00s)
Minitest::UnexpectedError:         NoMethodError: undefined method `[]' for nil:NilClass
            lib/fbe/fb.rb:34:in `fb'
            lib/fbe/award.rb:53:in `initialize'
            test/fbe/test_award.rb:35:in `new'
            test/fbe/test_award.rb:35:in `test_simple'

  test_must_not_give_anything_when_too_small_value               \u001b[31mERROR\u001b[0m (0.00s)
Minitest::UnexpectedError:         NoMethodError: undefined method `[]' for nil:NilClass
            lib/fbe/fb.rb:34:in `fb'
            lib/fbe/award.rb:53:in `initialize'
            test/fbe/test_award.rb:105:in `new'
            test/fbe/test_award.rb:105:in `block in test_must_not_give_anything_when_too_small_value'
            test/fbe/test_award.rb:104:in `each'
            test/fbe/test_award.rb:104:in `test_must_not_give_anything_when_too_small_value'

  test_shorten_when_one_number                                   \u001b[31mERROR\u001b[0m (0.00s)
Minitest::UnexpectedError:         NoMethodError: undefined method `[]' for nil:NilClass
            lib/fbe/fb.rb:34:in `fb'
            lib/fbe/award.rb:53:in `initialize'
            test/fbe/test_award.rb:123:in `new'
            test/fbe/test_award.rb:123:in `test_shorten_when_one_number'

TestFb
  test_simple                                                    \u001b[32m PASS\u001b[0m (0.02s)

TestIfAbsent
  test_injects_and_reads                                         \u001b[32m PASS\u001b[0m (0.00s)
  test_complex_injects                                           \u001b[32m PASS\u001b[0m (0.00s)
  test_injects                                                   \u001b[32m PASS\u001b[0m (0.00s)
  test_ignores_with_time                                         \u001b[32m PASS\u001b[0m (0.00s)
  test_complex_ignores                                           \u001b[32m PASS\u001b[0m (0.00s)
  test_ignores                                                   \u001b[32m PASS\u001b[0m (0.00s)

TestWho
  test_simple                                                    \u001b[32m PASS\u001b[0m (0.00s)

QuotaTest
  test_quota_middleware_pauses_when_quota_low                    \u001b[32m PASS\u001b[0m (0.00s)
  test_quota_middleware_logs_when_quota_low                      \u001b[32m PASS\u001b[0m (1.00s)

Finished in 2.35257s
42 tests, 47 assertions, \u001b[31m0 failures, 6 errors, \u001b[0m\u001b[33m3 skips\u001b[0m
rake aborted!
Command failed with status (1)
/usr/local/rvm/gems/ruby-3.2.2/gems/rake-13.2.1/exe/rake:27:in `<top (required)>'
/usr/local/rvm/gems/ruby-3.2.2/bin/ruby_executable_hooks:22:in `eval'
/usr/local/rvm/gems/ruby-3.2.2/bin/ruby_executable_hooks:22:in `<main>'
Tasks: TOP => default => test
(See full trace by running task with --trace)
container 3609a599e4c96033d9fdf76ac0759602565405e33c5a0df2d9d89ff2138f6fad is dead
Fri Aug  2 03:16:16 UTC 2024

@rultor release, tag is 0.0.36

@rultor release, tag is 0.0.36

@yegor256 OK, I will release it now. Please check the progress here

@rultor release, tag is 0.0.36

@yegor256 Done! FYI, the full log is here (took me 8min)


Update all dependencies to latest

A number of dependencies have fallen behind by multiple minor or patch versions.
This pull request resolves the following PRs and Issues, while maintaining the same functionality:

https://github.com/Yamashou/gqlgenc/pull/94
https://github.com/Yamashou/gqlgenc/pull/93
https://github.com/Yamashou/gqlgenc/pull/91
https://github.com/Yamashou/gqlgenc/pull/52
https://github.com/Yamashou/gqlgenc/pull/35
https://github.com/Yamashou/gqlgenc/pull/29
https://github.com/Yamashou/gqlgenc/issues/92

Thank you!!!! This PR is creating my time of the weekend.

This PR is not resolving the https://github.com/Yamashou/gqlgenc/issues/92
@Yamashou Can you check it?


selection and cursor pos

Need some help in  rich_input.lua   -  line 186

That's all the features we want to add this time,  please let us know when you would be ready with code review. If something needs fixes, let us know too pls.


Add theme support and two optional themes

I added theme support to the web UI and two optional themes.

By default, theme is set to modern.
The original old theme called storm.
You can switch themes via query string (e.g. http://localhost:9002/?theme=storm will override the theme)
storm ssh --theme storm will start storm web ui with the storm theme.

New Black Theme

New Modern Theme (Default)

Any updates on this?

Thanks.


README for CLI usage

It would be great if there was a readme for the CLI like there is for the QT. Here's an initial stab at that with some deets on docker and kubernetes setup.
README.md

It would be great if there was a readme for the CLI like there is for the QT. Here's an initial stab at that with some deets on docker and kubernetes setup. README.md

A small edit - in line 19 there should be a folder ~/.raptoreumcore
Please write how to check the balance and transfer rtm. I can't find any information in "raptoreumd / raptoreum-cli -h"

We are adding this to the reworked documentation site and it should be up fairly soon!


Hashmap uniformization

This PR is somewhat of a continuation to the discussion in #228 .
It allows both FFI and native code to use the services API in an organic manner through the use of generics, particularly referring to instances where there are containers of references in FFI, but in native code the container would be over owned types.
Also, the first commit simplifies the TailsFileReader; some lints were getting triggered and I figured I might as well do that while I was at it. If it's a problem to have both of these things in the same PR I can create a separate one for the first commit and cherry-pick the others in a separate PR.

@andrewwhitehead @swcurran  The ReferencesMap trait uses GATs to achieve the flexibility of passing in maps over owned/referenced values. I took the liberty of also bumping the Rust toolchain version from 1.64 to 1.65, which is when GATs were stabilized, as otherwise CI would fail.