MetroTabControl & Caliburn.Micro binding issue.

The binding is lost inside a MetroTabControl.
I've overridden ViewModelBinder.HandleUnmatchedElements of Caliburn Micro and there's 5 elements unmatched.
As soon as I add a regular TabControl in the Xaml the binding of the MetroTabControl is fixed and those 5 unmatched elements are gone.
Here is a simple repo : https://github.com/C1rdec/Mahapps.SimpleRepo.TabControl
The ViewModelBinder.HandleUnmatchedElements is in the Bootstrapper and the regular TabControl is commented. To fix the binding you just need to uncomment the regular TabControl.

@C1rdec Is fixed (take current alpha) and will be available in 1.5.0.


Kubeadm config reference

Instead of redirecting users to the godoc site for kubeadm configuration options, we'd better point them to the generated reference.

/hold
Waiting for the config reference PR to be merged.

The config reference PR: #28871

/unhold
The config reference PR #28871 was merged.

/lgtm

Thanks @tengqm .
/approve


how to choose highest bitrate stream ?

DO NOT REMOVE OR SKIP THE ISSUE TEMPLATE

[X] I understand that I will be blocked if I intentionally remove or skip any mandatory* field

Checklist

[X] I'm asking a question and not reporting a bug or requesting a feature
[X] I've looked through the README
[X] I've verified that I'm running yt-dlp version 2023.06.22 (update instructions) or later (specify commit)
[X] I've searched known issues and the bugtracker for similar questions including closed ones. DO NOT post duplicates
[X] I've read the guidelines for opening an issue

Please make sure the question is worded well enough to be understood
@dirkf redirected me to yt-dlp to ask this question from https://github.com/ytdl-org/youtube-dl/issues/32379
How to format select the streams that have highest bitrates ?
Asking because -f best chooses vp9 bydefault, not the other codecs.
My issue with YouTube compression is, that some VP9 streams have more artifacts than it's AVC counterpart.
Some videos get more bitrate on VP9, some get more on AVC. The codec that gets lower bitrate has more artifacts compared to other codecs that get more bitrate.
One example is 1080p VP9 streams, mostly get lower bitrate, hence not considered best stream for me.
Provide verbose output that clearly demonstrates the problem

[ ] Run your yt-dlp command with -vU flag added (yt-dlp -vU <your command line>)
[ ] If using API, add 'verbose': True to YoutubeDL params instead
[ ] Copy the WHOLE output (starting with [debug] Command-line config) and insert it below

Complete Verbose Output
No response

-S br
See https://github.com/yt-dlp/yt-dlp#sorting-formats

The output of -f best literally says WARNING: "-f best" selects the best pre-merged format which is often not the best option.          To let yt-dlp download and merge the best available formats, simply do not pass any format selection.          If you know what you are doing and want only the best pre-merged format, use "-f b" instead to suppress this warning
You can sort formats, but selecting nothing will automatically grab the best one

Can we use this for mpv --ytdl-format option ? I've tried but didn't work.

That maps to -f, so no.
You should be able to use mpv's --ytdl-raw-options though.

https://mpv.io/manual/master/#options-ytdl-raw-options
The syntax seems to be --ytdl-raw-options=format-sort=vbr,res,abr

if using commas I think you need to add brackets too, e.g.--ytdl-raw-options="format-sort=[vbr,res,abr]"

format-sort=[vbr,vcodec:vp9]

Well, if VP9 is more important to you than VBR, put it at the front of the sorting list:
--ytdl-raw-options="format-sort=[vcodec:vp9,vbr]"

I experimented with -f bv[vcodec!=av1]+ba to check whether ytdlp avoids av1 or not. Seems like it does not. Also tried av01, vcodec$=1, nothing is able to exclude av1. There is some issue with av1 format selection in general.

From the README, I extract:
-f '(bv*+ba/b)[vcodec!*=av01]'
Works for me (so far).


Add Auto Expiration

Description
While I certainly understand that some developers may prefer to handle removing expired values, I would suggest adding a setting that will tell MonkeyCache to automatically purge expired values.
Barrel.AutoExpire = true;

// Now returns a null if the object is expired.
var monkey = Barrel.Current.Get<Monkey>("foo");

Hmmmmm interesting


APILogicServer create fails if a foreign key column has the same name as the target table

If a foreign key column has the same name as the target table it causes create to fail.
To take an example from the sample database: if Order.CustomerID was instead named Order.Customer, then create would throw an SQLAlchemy error:
sqlalchemy.exc.InvalidRequestError: back_populates on relationship 'Customer.OrderList' refers to attribute 'Order.customer' that is not a relationship.  The back_populates parameter should refer to the name of a relationship on the target class.

I think this is because when the model generation code tries to declare the relationship in the Order model using the target table name, but it finds a name clash with the column so appends a 1 to the name of the relationship. Something like this:
class Order():
    ...
    customer = Column(ForeignKey('Order.customer', ondelete='CASCADE'), nullable=False)
    ...
    customer1 : Mapped["Customer"] = relationship(back_populates=("OrderList"))

Thanks for gift-wrapped bug report.  I will save the wrapping.
Will look into it right away.

Fixed in preview:
python -m pip install --index-url https://test.pypi.org/simple/ --extra-index-url https://pypi.org/simple ApiLogicServer==10.02.00

Fixed in GA: 10.02.00


Store the HTML output somewhere (GCS / Drive)

Add option to store the generated HTML output of each audit in Google Cloud Storage (easy with API) or Google Drive (a bit more difficult).

a05f61e9b3f217b7b563bb63927df1947cc2995f


New specs for Jakarta EE 9

Original bug ID: BZ#3145
From: @tjwatson
Reported version: R8

I assume we will handle this on a spec by spec base where we might handle it differently for each spec. We might also not update some specs like the http service.
Should we maybe create separate issues about for a spec we want to work on?

Should we maybe create separate issues about for a spec we want to work on?

Yes. This is an umbrella issue. When you create an issue for a specific spec, please make sure to update this issue to mention it.

I will go through the Compendium specs and make a recommendation about which specs to update to jakarta and which specs will not be updated and removed from Compendium.

What is the general plan? Will new specs only support api from the jakarta namespace? Or both? Or do we decide per spec?

What is the general plan? Will new specs only support api from the jakarta namespace? Or both? Or do we decide per spec?

If we can simplify the migration/coexistence story then that's best for users.
If Felix would have to package two copies of Jetty to support the old and new packages then that's clearly impractical, but if it's possible to support both apis from a single implementation bundle then I think we should.

I would assume that you can handle supporting the old packages via wrappers - should at least work for http whiteboard.
I would prefer that as well

I think the plan would be that Compendium R9 would be jakarta only. Compendium R8 does not cease to exist, so people can implement and use R8 based impls. Impls of R9 can support old javax if they want but that would not be an R9 spec requirement and the R9 TCK would test jakarta only.
I don't want to have an R9 spec requiring support for both jakarta and javax. Doing so would be an impl choice and not tested by the spec's TCK.

ok, fair enough - in that case, we must make sure that implementations can support javax packages without a high burden. For example, if we have an api package in version 1.3 which uses a javax package as part of their signature, changing that to jakarta packages and updating the major version to 2.0 sounds reasonable from an api and also user perspective. But it makes it very hard if not impossible for an implementation to implement both.

Well the obvious choice is to bump the spec major version and the spec API package major version and replace javax API references with jakarta API references. Renaming the spec API packages (so that the javax referring package names and the jakarta referring package names are distinct) seems a large burden on everyone for the very small community of implementors who want to implement both old and new spec in the same impl bundle (for which there is little evidence this is practical or even possible).

ok, fair enough - in that case, we must make sure that implementations can support javax packages without a high burden. For example, if we have an api package in version 1.3 which uses a javax package as part of their signature, changing that to jakarta packages and updating the major version to 2.0 sounds reasonable from an api and also user perspective. But it makes it very hard if not impossible for an implementation to implement both.

To use the HttpService as an example.  I think this is a case where we would deprecate (or actually remove it from the specification).  An HTTP Whiteboard implementation could choose to still understand javax Servlet registrations but would not be required to.  But we do have a difficult time with org.osgi.service.http.context.ServletContextHelper.

Right, I'm exactly worried about that class - if we provide a 2.0 API with a ServletContextHelper bound to the jakarata package

Well the obvious choice is to bump the spec major version and the spec API package major version and replace javax API references with jakarta API references. Renaming the spec API packages (so that the javax referring package names and the jakarta referring package names are distinct) seems a large burden on everyone for the very small community of implementors who want to implement both old and new spec in the same impl bundle (for which there is little evidence this is practical or even possible).

A burden also applies to users of the specification if only the jakarta API namespace is supported. If, for example, I have an existing runtime and I want to add a new JAX-RS application or a new Servlet then I either:

Have to keep using the old javax API namespace in my new code
Upgrade all my existing code to the new Jakarta namespace
Run more than one whiteboard implementation (one for javax and one for jakarta) on different ports

All of these options are suboptimal...
It's also the case that a lot of existing libraries and tools provide types using the javax APIs, are we saying that from R9 those will be unavailable?

I am not sure what you are arguing for? Doing nothing about jakarta? I don't think that it practical.
We either have to bump the major version of the API packages and people can use the current R8 APIs/impls or use the new R9 APIs/impls. Or we create entirely new package names (org.osgi.service.jaxrs.client becomes ??) for all the API packages for a very small set of use cases.
I am not concerned by the use case of updating an existing bundle which uses javax-referring API to add a new jakarta-referring API part. You will need to update the entire bundle.
Supporting both javax-referring and jakarta-referring whiteboards can be done. If they can share the same port is more of an impl question for the whiteboard impls. Such dual-faced impls can certainly be structured (through a set of bundles) to do this.
I do not want to OSGi to have dual-faced specs which simultaneously support  javax-referring and jakarta-referring APIs. That will lead to madness. We, like others in the industry, will need to make a cutover. Implementations are free to support both faces, Open Liberty does this quite well and the Jakarta EE specs do not require them to. But each application on Open Liberty must be either javax-referring of jakarta-referring. There is no reasonable space where an application can be a mis-mash of both. Pick a side! :-)

Picking a side is not really user friendly - I understand thats what servlet engine implementations are currently doing, but we can do better.
Regardless, at least for http whiteboard, the spec I'm concerned most, it will work with a 2.0 version of http whiteboard using jakarata packages - that's because there is no provided service defined in the spec, just  whiteboard interfaces. The runtime service is agnostic of the package space.. An implementation can then support R7 and R9 in parallel

Picking a side is not really user friendly

The whole jakarta namespace change is not user friendly... yet here we are :-)

The runtime service is agnostic of the package space

Except for the ServletContextHelper, which references HttpServletRequest and HttpServletResponse
The JAX-RS whiteboard may be safe, but I'm not yet certain. Transaction Control may be able to get away with only making the JPA package version 2.0.

The runtime service is agnostic of the package space

Except for the ServletContextHelper, which references HttpServletRequest and HttpServletResponse

If we want to leave the option open for implementations we could pick a new package name for the types that reference jakarta types.  For example, maybe org.osgi.service.http.jakarta.context makes sense for the HTTP Whiteboard Jakarta base spec.

The runtime service is agnostic of the package space

Except for the ServletContextHelper, which references HttpServletRequest and HttpServletResponse

ah sorry, I meant everything in the http.runtime package - there is no need to have a 2.0 version for that
http.whiteboard and http.context have those reference - but supporting two different major versions shouldn't pose a problem

The whole jakarta namespace change is not user friendly... yet here we are :-)
Touché - but just because someone does a mess to users, thats not a good reason to repeat that :)
I still believe for http.whiteboard we are fine - if the package for the HttpServiceRuntime service does not get a major version update.

For example, maybe org.osgi.service.http.jakarta.context

Egads, no! This is an inflection point, we do not want to bake it permanently into the api names.
A bundle must be either fully javax or fully jakarta. I do not want a goal of this work to be supporting bundles attempting to have parts be javax and parts be jakarta. Under this goal, there is no need to bake jakarta into package names. We either keep the package names and bump the major version or we completely rename all the packages to have a new parent package. I think the latter is confusing and wasteful of time arguing over naming :-)
I think impls can support both old and new but not in one bundle. They will need multiple bundles to handle the package versions.
We must also be cognizant of the availability of our resources to address the jakarta issue. Bumping major package versions and refactoring to use jakarta API will be hard and time consuming enough. Attempting to support a dual-faced approach to the specs will be significantly harder and take much more time and effort to attempt.

For example, maybe org.osgi.service.http.jakarta.context

Egads, no! This is an inflection point, we do not want to bake it permanently into the api names.

Fine, but we are already going to 2.0 for the spec version with breaking changes having a renamed package is perfectly acceptable to me.  I think we can come up with a name for the package to make it easier for impls that want to support both.  I'll just throw one more name out there org.osgi.service.http.helpers.  Arguably a better name to leave it open for adding other helpers and not make it so specific to context.

Should we move this discussion to a http whiteboard specific issue? As mentioned I see an easy path forward which hopefully will make BJ and everyone else happy :) I could create that one and outline the idea

Created #381 for http whiteboard

The new Jakarta contracts are now available at https://docs.osgi.org/reference/portable-java-contracts.html.

Closely related: Upgrade Apache Felix to Jakarta Servlet API 6.x (https://issues.apache.org/jira/browse/FELIX-6612).
There are quite a lot of prerequisites, along with questions which will further clarify next steps to take. Kindly please post your comments / clarifications via https://issues.apache.org/jira/browse/FELIX-6612 to move this forward.


pull request for e2e test at 12/13/2016 10:56:03

:white_check_mark: Validation status: passed
For more details, please refer to the build report.
Note: If you changed an existing file name or deleted a file, broken links in other files to the deleted or renamed file are listed only in the full build report.


Add a solution to the WhatsApp Cloud payload character limitation

https://github.com/theopenconversationkit/tock/issues/1604

#1604


FP8 quantizatin examples

When will FP8 quantizatin examples be released? Thanks!

What I found I had to do to get fp8 quantization working was to hand-edit the yaml config file to set the quantization field like this:
quantization:
  type: fp8

Then I had to reinstall llama_toolchain using "pip install -e ." while inside the agentic system venv. Not sure where the default requirements pull llama_toolchain from (the quantization file that seemed to be missing was in the initial commit), but this at least got the inference server to start without errors for me.


StackLayer for ami release

Implement https://github.com/aptible/deploy-api/pull/1623
For https://github.com/aptible/sweetness

https://app.shortcut.com/aptible/story/27065/ubuntu-upgrade-spike-what-the-heck-is-a-canary

https://app.shortcut.com/aptible/story/27109/ubuntu-upgrade-regular-integration-testing


Feature/support guzzle6

Supports also guzzle version 6 (the latest one)

A new inspection was created.

A new inspection was created.

The inspection completed: No new issues


ArcGIS Enterprise 10.9.1 deployment fails - 3.3.2 for Azure Cloud file Share

9/14/2022 6:37:29 PM: PowerShell DSC resource ArcGIS_Server  failed to execute Set-TargetResource functionality with error message: CreateSite Failed. Error:- Failed to create the site. Configuration store error. Cannot get persistence. File system '********.file.core.windows.net\esri\mapserver\server\config-store' connection failed. The specified location is not accessible. Ensure that the ArcGIS Server account has read and write access to the location.
9/14/2022 6:37:29 PM: The SendConfigurationApply function did not succeed.

Trace-DSCJob : 9/14/2022 6:45:55 PM: PowerShell DSC resource ArcGIS_Server  failed to execute Set-TargetResource functionality with error message: CreateSite Failed. Error:- Failed to create the site. Configuration store error. Cannot get persistence. File system
'\stslarcgistest03.file.core.windows.net\esri\mapserver\server\config-store' connection failed. The specified location is not accessible. Ensure that the ArcGIS Server account has read and write access to the location.
At C:\Program Files\WindowsPowerShell\Modules\ArcGIS\3.3.2\ArcGIS.psm1:261 char:5

Trace-DSCJob -Job $Job -JobName $ConfigurationName -DebugMode $De ...

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

CategoryInfo          : NotSpecified: (:) [Write-Error], WriteErrorException
FullyQualifiedErrorId : Microsoft.PowerShell.Commands.WriteErrorException,Trace-DSCJob

Trace-DSCJob : 9/14/2022 6:45:55 PM: The SendConfigurationApply function did not succeed.
At C:\Program Files\WindowsPowerShell\Modules\ArcGIS\3.3.2\ArcGIS.psm1:261 char:5

Trace-DSCJob -Job $Job -JobName $ConfigurationName -DebugMode $De ...

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

CategoryInfo          : NotSpecified: (:) [Write-Error], WriteErrorException
FullyQualifiedErrorId : Microsoft.PowerShell.Commands.WriteErrorException,Trace-DSCJob

Logs Directory: C:\Windows\system32\Logs
Finished DSC Job:- ArcGISServer. Time Taken - 00:03:37.7681417
ArcGISServer - Failed

Thanks @shailesh91  for the information, it's generated due to private Azure file share endpoint. Once i changed to public all works without any issue.


New release for Sendable conformance?

thanks for the library! would it be possible to get 0.4.1 released so that #57 (Sendable conformance) could be included?

0.5.0 is released! Sorry for the delay :smile:


uv tool update --all fails if a provided extra-index-url is not joinable

Hi,
I've defined extra-index-url with a private repository, only accessible on my company local network or through a VPN.
$ cat uv.toml
index-strategy = "unsafe-best-match"
allow-insecure-host = ["gitlab.example.com"]  # My company gitlab repository, with a self-signed cert
extra-index-url = [
    "https://pypi.org/simple",
    "http://gitlab.example.com/api/v4/projects/117/packages/pypi/simple/",
]

I've installed  a mix of 'public' tool (ruff, pre-commit, ansible-core...) and some custom scripts installed from this private repository.
When at home, without connecting the VPN,  if  I run :
$ uv tool update --all
⠼ Resolving dependencies...                                                     Failed to upgrade `ansible-core`: Could not connect, are you offline?
...

The update fails for all packages, including the "public" ones.
When I activate the VPN connection, the update is applied.
It would be nice too have a more specific message about the unreachable repository, or that the "public" ones to be updated without caring about the down VPN.
Thanks for this great tool !

Just curious, can you do this one at a time with uv tool update <package>? Does this only happen with --all?

What's in the tool receipt for the failing package? e.g. cat $(uv tool dir)/ansible-core/uv-receipt.toml

[tool]
requirements = [
    { name = "ansible-core" },
    { name = "mysqlclient" },
]
entrypoints = [
    { name = "ansible", install-path = "/home/fguerin/.local/bin/ansible" },
    { name = "ansible-config", install-path = "/home/fguerin/.local/bin/ansible-config" },
    { name = "ansible-connection", install-path = "/home/fguerin/.local/bin/ansible-connection" },
    { name = "ansible-console", install-path = "/home/fguerin/.local/bin/ansible-console" },
    { name = "ansible-doc", install-path = "/home/fguerin/.local/bin/ansible-doc" },
    { name = "ansible-galaxy", install-path = "/home/fguerin/.local/bin/ansible-galaxy" },
    { name = "ansible-inventory", install-path = "/home/fguerin/.local/bin/ansible-inventory" },
    { name = "ansible-playbook", install-path = "/home/fguerin/.local/bin/ansible-playbook" },
    { name = "ansible-pull", install-path = "/home/fguerin/.local/bin/ansible-pull" },
    { name = "ansible-test", install-path = "/home/fguerin/.local/bin/ansible-test" },
    { name = "ansible-vault", install-path = "/home/fguerin/.local/bin/ansible-vault" },
]

[tool.options]
extra-index-url = ["https://pypi.org/simple", "http://gitlab.ville.tg/api/v4/projects/fguerin%2Fpackages/packages/pypi/simple/", "https://pypi.org/simple", "http://gitlab.ville.tg/api/v4/projects/fguerin%2Fpackages/packages/pypi/simple/"]
index-strategy = "unsafe-best-match"
allow-insecure-host = ["gitlab.example.com", "gitlab.example.com"]

I've noted I've the same issue when I try to create a new venv with the --seed param - the setuptools / wheel / pip packages cannot be downloaded from the pypi repository, failing with the same message.

👍 thanks okay I follow now.
So.. we should at least say what we could not connect to / display the full error from the failure.
It seems makes sense to allow indexes to be offline entirely, but probably not by default? I'm not sure how to specify that.


New "Internetmarke" stamp layout

Hi Heinrich,
Deutsche Post changed the default layout of their stamps. Some lengths had to be adapted.
Furthermore, the compact layout changed, thus some more slicing was needed. Actually, the compact-layout is alike to the Deutsche Post one, but some whitespaces were squashed in their compact version.
Maybe it does make sense to keep the old compact layout as compact2 or compactold!
Best regards
Fabian

Oh, good catch. Didn't notice Deutsche Post changed its stamp format.
What if we introduced the new layout as new version, like version=2019, specified in the package or stamp options, so that people could still use their old stamps with this package. Basically it would be two new stamp layouts instead of updating the old ones.
I guess that's what you suggested by the compactold layout.

Also when you compile, make sure the references in the documentation are resolved. You may need to run pdflatex twice.

FYI: I'm very busy with my occupation. Thus doing the edits will take some time.

No problem 😃
I'm happy about your contribution!

Thanks for writing the postage package @heinrichreimer and thanks to @FabKre for making the changes to adapt to the new layout of the Internetmarke.
It would be great to see PR get merged and a new version of this package with the changes included be available.
What is missing to move ahead here?

What is missing to move ahead here?
I meant to add a package-option in order to support the old (early 2019) stamps. I'm afraid I haven't any time, though. Implementing those changes was always on low priority and is probably expandable, in the meantime.

Thanks for the quick response, @FabKre.
For what it's worth I think there is more value in merging this PR and removing support for old stamps (for the time being) than this useful package to not work with the current layout of the Internetmarke.

Okay, let's merge the PR then!
I noticed, in the PDF some references are broken.
Could you please fix that?
I'll commit my new LaTeX build pipeline (that I developed for another latex package) so that we can send the new version to CTAN tomorrow.

 Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.Fabian Kretzschmar seems not to be a GitHub user. You need a GitHub account to be able to sign the CLA. If you have already a GitHub account, please add the email address used for this commit to your account.You have signed the CLA already but the status is still pending? Let us recheck it.

had to squash all commits because of CLA (the older commits were done without email).

🙌 Thank you @heinrichreimer and @FabKre for moving so quickly here. I look forward to seeing a new version of the package in tlmgr update --list.
Have the broken references been addressed @heinrichreimer? If not, it's something I could potentially look into…

@FabKre already fixed the broken references when squashing commits.


Maintenance

add dockerfile
upgrade enzyme to ver17

Codecov Report

Merging #5 (3bad4a6) into main (0d5223f) will decrease coverage by 73.33%.
The diff coverage is 0.00%.

@@             Coverage Diff              @@
##              main       #5       +/-   ##
============================================
- Coverage   100.00%   26.66%   -73.34%
============================================
  Files            2        3        +1
  Lines            4       15       +11
============================================
  Hits             4        4
- Misses           0       11       +11

Impacted Files
Coverage Δ

src/hooks/WindowDimensions.tsx
0.00% <0.00%> (ø)

Continue to review full report at Codecov.

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


[Question]: Reproduce LongLLMLingua on the LongBench MultiDoc dataset

Describe the issue
We are interested in your longllmlingua results on longbench. We referred to these two parts of your code[https://github.com/microsoft/LLMLingua/blob/main/experiments/llmlingua2/evaluation/compress.py
][https://github.com/microsoft/LLMLingua/blob/main/experiments/llmlingua2/evaluation/eval_longbench.py], and other settings are as follows.
target token: 3000
compresse model: Llama-2-7b-chat-hf
llm model: Mistral-7B-v0.1
compress config:
contexts_list = origin.split("\n")
demonstration = [
    "\n".join(contexts_list[ii : ii + 4]) for ii in range(0, len(contexts_list), 4)
]
comp_dict = compressor.compress_prompt(
    demonstration,
    instruction=dataset2instruction[copy.deepcopy(sample["task"])],
    question=dataset2question[copy.deepcopy(sample["task"])].format(input=copy.deepcopy(sample["question"])),
    target_token=args.target_token,
    condition_compare=True,
    condition_in_question="after",
    rank_method="longllmlingua",
    use_sentence_level_filter=False,
    context_budget="+100",
    dynamic_context_compression_ratio=0.4,
    reorder_context="sort",
)

The results when running the local model (Mistral-7B-v0.1) appear different from the conclusions in the paper:

The overall latency increases directly because it is a two-step reasoning overhead;
The accuracy problem is very serious.
Bugs occurs on the musique dataset.

result:
task: 2wikimqa
compress_time:816.7587068080902 s
Original Prompt: {'2wikimqa': {'score': 34.85, 'num': 200}, 'avg': 34.85} predict_time:304.49882340431213 s
LongLLMLingua: {'2wikimqa': {'score': 34.99, 'num': 200}, 'avg': 34.99} predict_time:224.4709668159485 s
task: dureader
compress_time:986.9709990024567 s
Original Prompt: {'dureader': {'score': 0.68, 'num': 200}, 'avg': 0.68} predict_time:888.872100353241 s
LongLLMLingua: {'dureader': {'score': 0.02, 'num': 200}, 'avg': 0.02} predict_time:735.0324370861053 s
task: hotpotqa
compress_time:1154.135990858078 s
Original Prompt: {'hotpotqa': {'score': 41.16, 'num': 200}, 'avg': 41.16} predict_time:342.1117823123932 s
LongLLMLingua: {'hotpotqa': {'score': 38.77, 'num': 200}, 'avg': 38.77} predict_time:237.45726418495178 s
task: musique
Traceback (most recent call last):
  File "/data2/lkk/yuxiang/llmlingua/compress.py", line 174, in <module>
    comp_dict = compressor.compress_prompt(
  File "/home/lvkaokao/anaconda3/envs/llmlingua1/lib/python3.10/site-packages/llmlingua/prompt_compressor.py", line 676, in compress_prompt
    start = self.get_prefix_length(prefix + "\n\n", context[0])
  File "/home/lvkaokao/anaconda3/envs/llmlingua1/lib/python3.10/site-packages/llmlingua/prompt_compressor.py", line 995, in get_prefix_length
    assert self.tokenizer.decode(full_input_ids[i:]) == text[:100]
AssertionError

Test hardware platform:
We used 1 Nvidia A100-SXM4-80GB per experiment.
I would like to communicate with you the reason for these phenomenon. Thank you very much for your reply.

Hi @Liangyx2, thanks for your support and the very detailed experiment information.
Although we haven't tried using LongLLMLingua with Mistral as the LLM, my intuition tells me that it should still work.

Concerning the latency issue, there are mainly two reasons: 1) The current version's sentence segmentation is quite coarse, leading to an excessively high number of sentences; 2) The coarse-level compression process does not use batch inference, which significantly increases latency.
You might try modifying the segmentation method with the following code:

context = tokenizer.encode(context)
context = [tokenizer.decode(context[ii:ii + 500]) for ii in range(0, len(context), 500)]

Thank you for your experimental results. It looks like the results for 2wikimqa are reasonably higher than the original prompt, which is encouraging. However, it seems there might be some bugs with dureader. Could you provide your scripts? I can try to help you debug this and the musique issue when I have the bandwidth. However, it might take a few days.

Thanks again for your support and interest.

Thanks for your reply and help! We'll continue to improve the experiment based on your suggestions.
The command that triggers the error is
CUDA_VISIBLE_DEVICES=2 python compress.py \
--model_name /models/Llama-2-7b-chat-hf/ \
--load_origin_from experiment/longbench_musique.json \
--load_key context \
--save_key comp \
--save_path experiment/longbench_test_llama2_7b_3000_musique.json \
--target_token 3000 \
--device cuda

The script codes we use are as follows.
format_data_longbench.py
import json
import os

from datasets import load_dataset

os.makedirs("experiment/", exist_ok=True)

tasks = ["narrativeqa", "qasper", "multifieldqa_en", "multifieldqa_zh", "2wikimqa", "dureader", "hotpotqa", "musique"]

for task in tasks:
    dataset = load_dataset("THUDM/LongBench", task , split="test")
    data = []
    for idx, sample in enumerate(dataset):
        if task=="multifieldqa_zh":
            context=sample["context"].encode('unicode-escape').decode('unicode-escape')
            input=sample["input"].encode('unicode-escape').decode('unicode-escape')
            answers=[sample["answers"][0].encode('unicode-escape').decode('unicode-escape')]
        else:
            context=sample["context"]
            input=sample["input"]
            answers=sample["answers"]

        temp = {}
        temp["idx"] = idx
        temp["task"] = task
        temp["context"] = context
        temp["question"] = input
        temp["answers"] = answers
        temp["all_classes"] = sample["all_classes"]
        temp["length"] = sample["length"]
        data.append(temp)

        json.dump(
            data,
            open("experiment/longbench_"+task+".json", "w", encoding="utf8"),
            indent=4,
            ensure_ascii=False,
        )

compress.py
import argparse
import copy
import json
import os
import time

from tqdm import tqdm

from llmlingua.prompt_compressor import PromptCompressor

parser = argparse.ArgumentParser(description="compress any prompt.")

parser.add_argument(
    "--model_name",
    help="llm used to compress",
    default="microsoft/llmlingua-2-xlm-roberta-large-meetingbank",
)
parser.add_argument(
    "--load_origin_from", help="dataset used to compress", required=True
)
parser.add_argument(
    "--load_key", help="the key to load the text to compress", default="prompt"
)
parser.add_argument(
    "--save_key",
    help="the key to save the compressed text",
    default="compressed_prompt",
)

parser.add_argument("--save_path", help="path to save results", required=True)

parser.add_argument(
    "--target_token", help="number of target tokens", type=int, default=-1
)
parser.add_argument(
    "--force_tokens",
    help="the tokens which will be forcely preserved, comma separated",
    type=str,
    default=None,
)
parser.add_argument("--device", type=str)

args = parser.parse_args()
os.makedirs(os.path.dirname(args.save_path), exist_ok=True)
if args.force_tokens is not None:
    args.force_tokens = [
        str(item).replace("\\n", "\n") for item in args.force_tokens.split(",")
    ]
else:
    args.force_tokens = []
print(f"force tokens: {args.force_tokens}")

data = json.load(open(args.load_origin_from))
print(f"num data: {len(data)}")

dataset2instruction = {
    "narrativeqa": "You are given a story, which can be either a novel or a movie script, and a question. Answer the question asconcisely as you can, using a single phrase if possible. Do not provide any explanation.\n\nStory: ",
    "qasper": "You are given a scientific article and a question. Answer the question as concisely as you can, using a single phrase or sentence if possible. If the question cannot be answered based on the information in the article, write \"unanswerable\". If the question is a yes/no question, answer \"yes\", \"no\", or \"unanswerable\". Do not provide any explanation.\n\nArticle: ",
    "multifieldqa_en": "Read the following text and answer briefly.\n\n",
    "multifieldqa_zh": "阅读以下文字并用中文简短回答：\n\n",
    "2wikimqa": "Answer the question based on the given passages. Only give me the answer and do not output any other words.\n\nThe following are given passages.\n",
    "dureader": "请基于给定的文章回答下述问题。\n\n文章：",
    "hotpotqa": "Answer the question based on the given passages. Only give me the answer and do not output any other words.\n\nThe following are given passages.\n",
    "musique": "Answer the question based on the given passages. Only give me the answer and do not output any other words.\n\nThe following are given passages.\n",
    }

dataset2question = {
    "narrativeqa": "\n\nNow, answer the question based on the story asconcisely as you can, using a single phrase if possible. Do not provide any explanation.\n\nQuestion: {input}\n\nAnswer:",
    "qasper": "\n\n Answer the question based on the above article as concisely as you can, using a single phrase or sentence if possible. If the question cannot be answered based on the information in the article, write \"unanswerable\". If the question is a yes/no question, answer \"yes\", \"no\", or \"unanswerable\". Do not provide any explanation.\n\nQuestion: {input}\n\nAnswer:",
    "multifieldqa_en": "\n\nNow, answer the following question based on the above text, only give me the answer and do not output any other words.\n\nQuestion: {input}\nAnswer:",
    "multifieldqa_zh": "\n\n现在请基于上面的文章回答下面的问题，只告诉我答案，不要输出任何其他字词。\n\n问题：{input}\n回答：",
    "2wikimqa": "\n\nAnswer the question based on the given passages. Only give me the answer and do not output any other words.\n\nQuestion: {input}\nAnswer:",
    "dureader": "\n\n请基于上述文章回答下面的问题。\n\n问题：{input}\n回答：",
    "hotpotqa": "\n\nAnswer the question based on the given passages. Only give me the answer and do not output any other words.\n\nQuestion: {input}\nAnswer:",
    "musique": "\n\nAnswer the question based on the given passages. Only give me the answer and do not output any other words.\n\nQuestion: {input}\nAnswer:",
    }

compressor = PromptCompressor(model_name=args.model_name, device_map=args.device)

results = {}
results_list = []
total_time = 0

if os.path.exists(args.save_path):
    results = json.load(open(args.save_path))

for sample in tqdm(data):
    idx = int(sample["idx"])
    origin = copy.deepcopy(sample[args.load_key])
    if origin is None:
        continue
    if idx in results or str(idx) in results:
        print(f"{idx}-th sample is processed")
        continue
    t = time.time()

    contexts_list = origin.split("\n")
    demonstration = [
        "\n".join(contexts_list[ii : ii + 4]) for ii in range(0, len(contexts_list), 4)
    ]
    comp_dict = compressor.compress_prompt(
        # demonstration.split("\n"),
        demonstration,
        instruction=dataset2instruction[copy.deepcopy(sample["task"])],
        question=dataset2question[copy.deepcopy(sample["task"])].format(input=copy.deepcopy(sample["question"])),
        target_token=args.target_token,
        condition_compare=True,
        condition_in_question="after",
        rank_method="longllmlingua",
        use_sentence_level_filter=False,
        context_budget="+100",
        dynamic_context_compression_ratio=0.4,
        reorder_context="sort",
    )

    total_time += time.time() - t
    comp = comp_dict["compressed_prompt"]

    new_sample = copy.deepcopy(sample)
    new_sample[args.save_key] = comp

    results[idx] = new_sample
    json.dump(
        results,
        open(args.save_path, "w", encoding="utf8"),
        indent=4,
        ensure_ascii=False,
    )

print(args.save_path, total_time)
json.dump(
    results, open(args.save_path, "w", encoding="utf8"), indent=4, ensure_ascii=False
)

Hi @Liangyx2, The last issue is fixed. You can update to the latest version using pip install git+https://github.com/microsoft/LLMLingua.git.


2-Way binding issue

Two-way data binding is not reflected on view on loading the page.
https://jsfiddle.net/kethan/L0xz2q6d/2/

For clarification, it looks like the text field should populate from the form.text data binding, correct?

Yes correct. Not only text others values too


App Name doesn't appear on Smart Banner for iphone 4/5/6

It seems that you have a media query which is deciding that any screen size smaller than about what the iphone 6 plus is should not display the app name, and only the app icon.
This appears broken to me.
Attaching screenshots..
Working (iphone 6 plus):

App Name not displayed (iphone 6):

I shortened my app name and description and now it shows up on screen sizes all the way down to the iphone 3gs.

@scotthasbrouck

The default width for .left and .right classes are like 40 something % each, anything that goes over that width gets wrapped to the next line, and since it's overflow:hidden, it's not displayed. I looked all over the documentation and code but couldn't find a way to customize the banner at all. Ultimately I had to hack it like below and it kind of works, but it still feels very dirty.
   setTimeout(function(){
     $("iframe").contents().find(".left").css("width", "70%");
     $("iframe").contents().find(".right").css("width", "25%");
   },1000);

you can choose iframe:false to be able to customize it better - try that?

Maybe I'm missing something but iframe:false doesn't seem to work. I tried every version possible. Right now I'm running the latest 1.3.0 and it still renders them in an iframe

hrm, I believe there was a bug there, but I thought we fixed it. let me take a look in a bit

@polaski can you send a snippet of how you're calling the banner method with iframe:false, or any other context? I'm not able to reproduce the option not working. In the mean time.. I'll also work on the CSS for this to come up with a better solution that won't cause the entire app name and description to wrap outside the banner.

I think I figured it out. I thought these api calls were synchronous but actually they're asynchronous. So to clarify, I'm supposed to call banner() and link() methods inside init()'s callback, right?

We're actually working on that right now, but for the moment, you do need to do that unfortunately.

@kenleezle Just posted a CSS fix as v1.3.1. The app title and description should now line break and wrap, rather than just overflow outside the banner. Give that a try and let me know if you're still having porblems with it!


Add AI-powered policy builder and testing environment

Related to #9
Implement an AI-powered policy builder and testing environment in the Permit CLI.

New Commands:

Add permit playground build command for interactive policy creation with AI suggestions.
Add permit playground test command for real-time policy testing and evaluation logs.

Documentation:

Update README.md to include new commands and their usage.
Describe the new AI-powered policy builder and testing environment features.

Dependencies:

Update package.json to include dependencies for AI-powered features.
Add scripts for building and testing the new features.

Command Implementations:

Create source/commands/playground/build.tsx to implement the permit playground build command.
Create source/commands/playground/test.tsx to implement the permit playground test command.

Command Index:

Update source/commands/index.tsx to include entries for the new permit playground build and permit playground test commands.

Hey, @vishwamartur, I'm closing this PR as we do not yet ranked the idea in the issue and it has invalid code in it (there's no v2/policies route in Permit).


After choose the “Support” or “Buy” under “?help”, The browser will open a new tab, but it didn’t go to the new tab

repro steps:
•	Navigate to https://pxt.microbit.org/beta
•	Click “?help” , choose “Support” or “Buy”
Expect result :
The browser will open a new tab and go to the new tab
Actual result :
The browser will open a new tab, but it didn’t go to the new tab, it still on the page of https://pxt.microbit.org/beta
Only repro on FireFox on Mac

Can't repro on Firefox 50.1.0 on Mac 10.12.23.
The link has target=_blank.
What Firefox version are you using?

we test on firefox 52.0 on Mac 10.11.6, but it didn't repro when test today

Okay. Closing as No Repro.


Proposed new criteria: support certificate and private key update

The Project SHOULD support certificate and private key update and replacement (Except for digital certificates used for integrity check of software package).
Details:
Scenarios that require users to update or replace digital certificates and private keys include:

Pre-installed digital certificates and private keys are replaced with users' own certificates and public keys.
Private keys are leaked or suspected to be leaked.
Digital certificates and private keys reach the end of their life cycles.

This seems very desirable.
It's not entirely clear that  there are cases where this isn't already true.  However, it's clearly desirable.  As written, I think there's a loophole.  If nothing else, the user can always change the source code (and then recompile if compilation is needed). So we need to make it clear that recompilation should not be required.  Changing the integrity check seems important, since a user might change who they want to trust as their upstream... so I would not exclude that.
We had discussed in #683 the following:

The project MUST support storing authentication credentials (such as passwords and dynamic tokens) and cryptographic keys in files separate from configuration files, databases, and logs. (N/A allowed).

That is a very related idea, and we're trying to not have too many different criteria (no more than 100 at any one level).
I think we should tweak this proposal, combine it with #683, allow them to be modified without recompilation, and produce something like this:

The project MUST support storing authentication credentials (such as passwords and dynamic tokens) and private cryptographic keys in files that are separate from other information (such as configuration files, databases, and logs), and permit users to update and replacement them without code recompilation. This is N/A if the project never processes authentication credentials and private cryptographic keys.  (N/A allowed).

I plan to call this crypto_credential_agility.

Great idea to combine the two - the requirement is written clearly and is
easy to understand.
Spelling: replace vs replacement

@david-a-wheeler Great! :+1:


Adjust the way PATH is ammended to reference the existing $PATH env var instead of embedding the value of it

This makes sure that either Docker or the base image itself stay the "source of truth" for what the current value of PATH is, leaving rakudo-star only having to worry about what it's adding. :+1:

Doing a quick build-test of this to make sure I didn't bungle the syntax.

Nice, it worked!
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/share/perl6/site/bin

@tianon Thanks! I didn't think that that would work!

:metal: :+1: happy to help!


Feature Request: Disable shard scale-in

Would it be possible to add a setting to clickhouse-operator that disables the deletion of shards?
The purpose of this setting is to prevent inadvertent deletion of shards due to human operator error / misconfig, which deletes the PVCs as well as makes the shard's data unavailable (assuming that the data was not moved to another shard).

look kubectl explain chi.spec.templates.volumeClaimTemplates.reclaimPolicy
use something like that
spec:
  defaults:
    templates:
      dataVolumeClaim: with-retain
  templates:
    volumeClaimTemplates:
    - name: with-retain
      reclaimPolicy: Retain
      spec:
        storageClassName: ...
        resource:
          requests:
            storage: 5Gi

it prevent deleting PVC and allow restore disk data it after operator applied wrong kind: ClickHouseInstallation manifest


Model binding changed from 2.2. to 3.0

When binding in a Post method, with a [FromBody] attribute, there are differences between the 2.2 and the 3.0 implementation.

null to int: when binding a null value to an int, in 2.2 the model is still valid. In 3.0 the whole model gets a null value.
string to int: in 2.2 a string json value binds to an int. (the string is cast to the int).  In 3.0 the model gets a null value
int to string: in 2.2 an int json value binds to a string. In 3.0 the model gets a null value.
If this is intended behavior, it would be good to document this somewhere.

Document Details
⚠ Do not edit this section. It is required for docs.microsoft.com ➟ GitHub issue linking.

ID: 76f39eec-9dd1-6167-56ec-47b26e0b5063
Version Independent ID: f9f2b0f3-01eb-cf58-8767-194fe0fc0e44
Content: Migrate from ASP.NET Core 2.2 to 3.0
Content Source: aspnetcore/migration/22-to-30.md
Product: aspnet-core
Technology: aspnetcore-migration
GitHub Login: @Rick-Anderson
Microsoft Alias: riande

@rynowak @pranavkm what model binding changes do we need to document?

On one of my Api, I use an Enum:
public enum EnumTaal
{
Nl,
En
}
As example, Swagger shows this
..
"taal": "nl"
..
And in the model it is shown as:
taal*	string
Enum:
[ nl, en ]
In 2.2 the acceptable values were "nl" and "en" as expected
In 3.0 I get an error:
"$.taal": [
"The JSON value could not be converted to DTOAPI.Controllers.v2.Models.Ehm.EnumTaal. Path: $.taal | LineNumber: 9 | BytePositionInLine: 14."
]
The only acceptable values are now 1 and 2.
Is there an attribute that I can use to force the values back to "nl" and "en'?

Ah:
[System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.JsonStringEnumConverter))]
public enum EnumTaal
{
Nl,
En
}
works


Restore swap-branches-on-compare feature

Closes #4223
https://github.com/sindresorhus/refined-github/compare/main...Slash/slash

@ceelo777 Very good job!
Can you fill in the issue template?

What other arrow is on the page? Do they have another icon that shows up in small viewports? Do we have to also include that?

What other arrow is on the page? Do they have another icon that shows up in small viewports? Do we have to also include that?

Repo watch setting

Thanks @ceelo777


Feature: Background question mappings

Adds the date, location, and required fields to survey questions. Also adds the DatePicker.

This is that the date picker looks like on 19 with 7" display


How to submit form when 'Enter' key is pressed on last field?

With the original TextFormField, this is easily done with onFieldSubmitted callback, but FastTextField does not have this. How can I achieve the same thing using this package? I tried the onSaved callback but it does not work.

onFieldSubmitted has been added in 8.1.0


Unicode support

Players with pure Unicode names (e.g. Chinese players) of the same length will collide because the characters are replaced with ?s.

Unicode isn't available in web admin therefore complete support isn't possible. However I believe some characters are still lost despite attempts to use the same encoding as the webpage.

Found an example.
Ivester™
™ in web-admin is replaced with Â? in MA


Wado rs

Added functionality to send wado-rs requests and changed the fastify packages to the new @fastify namespace.

Sorry, messed that PR up a bit - pushed to the wrong branch!


MAISTRA-2462 Cache NetworkAttachmentDefinition objects

gen-check will pass once #762 is merged.

/test istio-operator_gen-check

The client provided by controller-runtime has an internal cache of its own, but only when using typed objects (i.e. not unstructured).


[Project Suggestion] Program selection menu

Project Suggestion: Program selection menu
As we add user contributed scripts we will (hopefully) end up with a large enough collection that the module will be useful 'out of the box' and not require that the user write their own scripts. In this case it would be nice to be able to switch amongst these scripts without connecting a computer and re-writing main.py.
I think that a proper menu system will require that we design two major pieces:

hardware UX: the actual menu that the user experiences via the OLED, buttons, and knobs
software API: The menu program and API that allows programs (apps?) to be included in the menu easily.

I believe that some work had already be done towards this, at least with the prototype module (https://github.com/awonak/EuroPiAlt). I suggest that we use this issue to focus these efforts and gather input on what this menu should be and how it should behave.

Here are some of my ideas to get a conversation started
Hardware UX:

should work on the base EuroPi and not require an expander, but it's ok if the expander makes the menu easier to use
first boot should dump you to the menu, subsequent boots should run the last running program
it should be easy to exit a program and return to the menu, but it should require purposeful action, the user shouldn't end up there by accident
My first though on how it should behave:

the screen shows a list of programs with one selected
the buttons are 'up' and 'down', allowing you to scroll through the list to select the program you want
a long press on both buttons launches the selected app
a long press on both buttons exits the app back to the menu

software API:

Each program is an implementation of a base class which allows the user to define various aspects of the program including:

name
main loop
handlers

We'll need a way of registering the available programs in a way that keeps the menu consistent between runs
handlers should be registered on launch and removed on exit
it would be nice to include a way for programs to save and load state

I really like the bootloader idea and I'm sure I would use it on one of the EuroPis in my rack, but I think there are a lot of people (myself included in some cases) who would see the bootup taking you to a menu as a very bad thing, when one of the draws of modular is the immediacy of being ready to patch.
What would you guys think about developing the bootloader alongside the main branch as an alternate programming process, and then users can always swap between the two but there's still a clean and clear guide for one program, loads immediately?
I'm conscious that there have been design changes made, such as potentiometers instead of encoders, that are gearing the module towards standalone programs, and that's how I've been writing them (so that they are almost worthy of being made into a dedicated module). I kind of want to avoid the most common use of the module being another disting/O_c where people aren't as encouraged to write their own programs because it's seen from the surface as being a menu based multi-function!

I definitely want the menu to be something that you visit intentionally. That's why I said:

first boot should dump you to the menu, subsequent boots should run the last running program

I think the value of the menu at first boot is that the user can jump into using the module right away after getting it racked. They don't need to write their own program. My assumption is that if they bought this thing, they want to write their own, but not necessarily before they start wiggling.
That said, I think that the menu system would just be another program that the user has to load, coupled with a directory of the contributed programs. So the documentation could, remain as it is: (1) build, (2) optional calibration, (3) make it your own. And off to the side would be separate instructions to either (a) load a single program from the contrib dir, or (b) load the menu system along with the full contrib dir. So the question is how far off to the side does this need to be?
Also, I'll admit that as I've thought about the UI for different potential programs I've wished for encoders. I've also looked at the uO_c layout and thought that it might be a good direction for the next hardware iteration of the EuroPi to target. So, I'm glad to hear your thoughts and vision on this to that I can temper my expectations. And that if I do want to go in that direction it might be on my own project or expansion.

Ah, I completely missed you saying subsequent boots should be into the previous program, that does sound like a great solution for storing multiple programs then.
I think the O_c layout is great for what it does, but accomplishing the same with the Pico would require quite a lot of extra hardware (and thus HP unless we make it SMD) as the Pico has very few on board ADCs.
I do think encoders have a lot of advantages, but the simple fact that very very few beloved dedicated modules have encoders, even for 'digital' parameters (e.g. the new Mutable Beads has a potentiometer for the density control despite it selecting discrete values) proves that people like the feel of a smooth, click-less knob, with at the very least the perception of continuous control.
I did deliberate for a long time when designing the new hardware about encoders, it's probably one of the things I was hung up on for the longest, so I'll agree with all the points in favour of them, I just think that the specific direction I'm going with this project (a platform with which people can design programs that are worthy of being standalone modules) leans towards potentiometers!
Of course there's also nothing to prevent anyone from designing an alternative hardware that uses encoders instead, I might even design an expansion module that has an encoder so it can be used for menu navigation if that's the direction lots of people seem to want

No worries, I think, in general, we are on the same page.
It's nice to hear about these design decisions. You might consider writing some of them up, as blog posts, or whatever. I think it would help this fledgling community understand where you're coming from and the work you've put in a little more.
And yeah, an encoders expansion would be great.

That's a good idea! I'll write some stuff up, possibly using GitHub discussions, although I've never used them before...
I'm thinking of an expansion in maybe 4HP with one or two encoders and one or two push buttons, that way you could have a single button dedicated to entering the bootloader and then an encoder that chooses the current program, or even something more complex like the way O_c can run multiple programs at once where you could run multiple simple programs at once using the same inputs e.g. top row of CV outputs are a sample and hold, bottom row is a clock divider

I've got lots of thoughts and opinions on this topic, but I'll start with a few key observations from my work with the EuroPi-Prototype and my Bootloader firmware. I'm in favor of the simple europi.py + main.py firmware and script approach as the default, and perhaps some additional directory for alternative firmwares (e.g. bootloader).
EuroPi must be beginner friendly first
I have noticed folks from a wide range of backgrounds getting really interested in the EuroPi, some using this to try Python for the first time. I think it's important to ensure whatever changes we make, still keep the project easily accessible to beginners.
Thonny is the default editor and it sucks at copying multiple files
I'm not aware of a way to copy entire directories or multiple files at once from Thonny to the pico. As a result, each individual contrib script would have to be copied manually. Yuck. This is why I have moved my development process over to rshell so I can use cp or rsync to copy multiple files in one shot. As my firmware and script library grew, I started using reusable libraries, so the number of files grew even more. As complexity grows we'll inevitably move in this direction too, so we'll need to keep in mind a good solution for simplifying this.
Beware of hardware expansions
Early on I build a crappy expansion board to give me input and additional knob control. This was awesome in theory, but I realized if I used the expansion module in any of my scripts, no one else would be able to use it. If we add any code that depends on expansion modules, then anyone without the expansion module won't be able to use it. Then you can get in the trap of forking scripts for use with/without expansion modules or excluding portions of the community who don't have that module. It's a tricky area.
The bootloader is awesome
On my EuroPiAlt firmware, I love being able to load up any of my finished scripts for any patch I create without the need to reconnect the EuroPi to my computer. I see huge value in a bootloader script for those who want to run it. This is definitely an area worth exploring while ensuring EuroPi is still beginner friendly.

I agree with everything Adam is saying here, that all sounds like the right philosophy to have.
Regarding expansion boards, I think they should be out of scope for this menu program discussion. That said, we should definitely make it a policy that no code gets merged to this repo that requires an expansion board. If there's ever an official expansion board, or something third-party that is common in the community, then we can explore adding support for it. But as Adam said, we will need to be careful.

One design decision we'll have to consider here is the use of async. In my version of the firmware, the bootloader ran inside an async event loop. This allowed us to create async tasks like led triggers, button handlers, and other parallel tasks to improve performance and simplify code in some instance (but more complex in others).
As a result of this decision, scripts were required to define an async main method. In order to run, they would have to be started by an async event loop. Additionally, scripts needed to be manually added to the bootloader script list. This might be desired if we want users to control what scripts to include/exclude, but it does add a required step when creating a new bootloader compatible script.
For our bootloader design, I'd like to avoid imposing script requirements like this as much as possible. If any requirements still exist, we should make that as easy as possible for folks, such as providing a base class with default behavior or solid documentation. Also, we should strive to make bootloader scripts backwards compatible with non-bootloader default firmware.

Another thought that might help simplify the requirements for making a compatible script for the script selection menu is to use boot.py as the bootloader to choose from a list of script files and copy the selected file to /pyboard/main.py
https://docs.micropython.org/en/v1.9.3/pyboard/pyboard/tutorial/script.html

I'm gonna run with this idea and see how far I get.

This was completed with PRs #82 and #101.


Execute ballerina commands even if there are spaces in the path

Purpose

$title

Fixes #20335
Approach

Describe how you are implementing the solutions along with the design details.

Samples

Provide high-level details about the samples related to this feature.

Remarks

List any other known issues, related PRs, TODO items, or any other notes related to the PR.

Check List

[x] Read the Contributing Guide
[ ] Updated Change Log
[ ] Checked Tooling Support (#)
[ ] Added necessary tests

[ ] Unit Tests
[ ] Spec Conformance Tests
[ ] Integration Tests
[ ] Ballerina By Example Tests

[ ] Increased Test Coverage
[ ] Added necessary documentation

[ ] API documentation
[ ] Module documentation in Module.md files
[ ] Ballerina By Examples

Codecov Report

Merging #21117 into ballerina-1.1.x will not change coverage.
The diff coverage is n/a.

@@               Coverage Diff                @@
##           ballerina-1.1.x   #21117   +/-   ##
================================================
  Coverage            15.21%   15.21%
================================================
  Files                   50       50
  Lines                 1341     1341
  Branches               208      208
================================================
  Hits                   204      204
  Misses                1121     1121
  Partials                16       16

Continue to review full report at Codecov.

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


Most basic use case fails

All I did was install and set up some keymaps:
return {
	"samharju/yeet.nvim",
	dependencies = { "stevearc/dressing.nvim" },
	keys = {
		{
			-- Open target selection
			"<leader>yt",
			function()
				require("yeet").select_target()
			end,
		},
		{
			-- Update yeeted command
			"<leader>yc",
			function()
				require("yeet").set_cmd()
			end,
		},
		{
			-- Run command without clearing terminal
			"<leader>ye",
			function()
				require("yeet").execute({ clear_before_yeet = false })
			end,
		},
	},
}

using require("yeet").execute({ clear_before_yeet = false })
first gives me :
left,#{?pane_at_right,right,}} #{?pane_active,(active),}}'' failed
Press ENTER or type command to continue

then after selecting new term buffer cause it's the only option:
Error executing vim.schedule lua callback: ...fan/.local/share/nvim/lazy/yeet.nvim/lua/yeet/buffer.lua:75: attempt to concatenate local 'cmd' (a table value)
stack traceback:
        ...fan/.local/share/nvim/lazy/yeet.nvim/lua/yeet/buffer.lua:75: in function 'send'
        ...tefan/.local/share/nvim/lazy/yeet.nvim/lua/yeet/init.lua:128: in function 'execute'
        ...tefan/.local/share/nvim/lazy/yeet.nvim/lua/yeet/init.lua:119: in function 'callback'
        ...tefan/.local/share/nvim/lazy/yeet.nvim/lua/yeet/init.lua:84: in function 'on_choice'
        ...are/nvim/lazy/dressing.nvim/lua/dressing/select/init.lua:78: in function ''
        vim/_editor.lua: in function <vim/_editor.lua:0>
Press ENTER or type command to continue

Thanks for the issue!
First message seems to be a warning about no tmux server running, which should not be so intrusive. I'll fix that.
Second error seems to be a typo in the readme, fixed signature would be:
require("yeet").execute(nil, { clear_before_yeet = false, yeet_and_run = true})

Good reminder to actually try out every aspect of docs before publishing them.

I'll add later better handling or an option for disabling that warning about tmux server.

fixed with v1.0.1


Issue with k8s.io/docs/reference/command-line-tools-reference/kube-apiserver/

This is a...

[ ] Feature Request
[x] Bug Report

Problem:
The description of the --v argument reads:
"log level for V logs"
It would be very helpful if we could list out the different log levels here and explain what each one means.
Proposed Solution:
Add a list of log levels to the --v option, along with an explanation for each level
Page to Update:
https://kubernetes.io/docs/reference/command-line-tools-reference/kube-apiserver/

/language en


Support $schema property in manifest config schema

Is your feature request related to a problem? Please describe.
When supplying a schema key in json files, editors can pick up on for intellisense, validation, etc. Currently, adding this key to release-please-config.json raises a validation error saying that $schema isn't a valid key (a bit ironic!).
Describe the solution you'd like
It would be great to add $schema as a valid (URI) property. It's a simple change I'm happy to PR as long as there's no concerns.

Yes, that would be a great addition.
For posterity, that field is defined: https://json-schema.org/draft/2020-12/json-schema-core.html#name-the-schema-keyword


Active Zone should not show as a dropdown w/ arrow if it's not actually dropdown.

Per issue 60 it was stated that the Active Zone "dropdown" should only show one site and this was intended behavior. This is extremely confusing UI.
I have 10+ domains in the CF account I'm connected to. I'd expect to either:
A) see them all w/ the active one highlighted
B) not see a drop down arrow suggesting I should see something more here...
I also don't see any way to change it, which is going to be a problem when someone migrates their site to a new domain.

You are absolutely correct. This is an extremely confusing UI. We will have a solution for it in the near feature.

I also don't see any way to change it, which is going to be a problem when someone migrates their site to a new domain.

The Active Zone gets the domain your wp-admin is opened in so this shouldn't be a problem in the current version.


update CMake and fail on error

installs CMake 3.13.1
calls travis_terminate 1 in the whole block running cmake config and make (was only at make)
closes #174 (possibly)

Do you know why this export PATH="$PWD/cmake-*/bin:$PATH" doesn't seem to work?

i see before that
gzip: stdin: not in gzip format
tar: Child returned status 1
tar: Error is not recoverable: exiting now

therefore something wrong with the download

I've added a verbose to curl.
This is WIP, with likely many dumb commits. We will squash merge this likely) (so therefore: do not merge this PR/branch elsewhere)

The boost problem is known. Trusty is too old. so we need to set USE_SYSTEM_BOOST=OFF in all linux cases

CMake version fixed now (will need to squash those commits!). But ACE still fails cryptically
make[7]: warning: jobserver unavailable: using -j1.  Add `+' to parent make rule.
make[7]: warning: jobserver unavailable: using -j1.  Add `+' to parent make rule.
GNUmakefile: /home/travis/build/CCPPETMR/SIRF-SuperBuild/builds/ACE/build/source/ace/GNUmakefile.ACE MAKEFLAGS=s
make[7]: warning: jobserver unavailable: using -j1.  Add `+' to parent make rule.
ACE_Qt4Reactor_moc will not be built due to the following disabled make macros: qt4
GNUmakefile: /home/travis/build/CCPPETMR/SIRF-SuperBuild/builds/ACE/build/source/ace/QtReactor/GNUmakefile.ACE_Qt4Reactor_moc MAKEFLAGS=s
make[5]: *** [stamp/ACE-build] Error 141

I've squashed the commit series to have one "fix cmake". To do:

change USE_SYSTEM_BOOST=OFF due to Travis trusty too old
fix ACE build.

I feel that for the latter, we can use a separate PR, as we don't need it on the VM nor bionic. So I suggest to put USE_SYSTEM_ACE=ON for now (with a comment why), and create an issue for later. Hopefully we'll be green then.

I've got no clue on why travis doesn't run. @casperdcl @KrisThielemans @bathomas  any ideas?

https://travis-ci.org/CCPPETMR/SIRF-SuperBuild/requests says "could not parse .travis.yml" for your last 2 commits.I found http://lint.travis-ci.org but it says it no longer works but refers to a WIP that seems very complicated to get to run. I'm now looking with the command line version. (Note: needs ruby-dev for installation)

running now. I've cancelled the PR build but kept the branch build to save some global warming. (Seems to me that if we have a PR from our own branch, Travis runs everything twice)

I thought I had fixed those spaces.
It was late

Oh yes, it's late and I misunderstood the convention.
it must have been even later when you tried to fix it :-)

   # +boost -itk -fftw3 -hdf5 -ace +niftyreg
   env: EXTRA_BUILD_FLAGS="-DUSE_SYSTEM_Boost=OFF -DUSE_ITK=OFF -DUSE_SYSTEM_FFTW3=ON -DUSE_SYSTEM_HDF5=ON -DUSE_SYSTEM_ACE=ON -DUSE_NiftyReg=ON" MATRIX_EVAL="CC=gcc-5 CXX=g++-5" PYMVER=3

should be
   # -boost -itk +fftw3 +hdf5 +ace +niftyreg

let's hope this works. If it does, I suggest you fix the comments and squash the last few commits (fixing commit message by starting with [TRAVIS] and saying what you did with ACE as well), then we re-enable OSX. Let me know if you need any help with this.

   # +boost -itk -fftw3 -hdf5 -ace +niftyreg
   env: EXTRA_BUILD_FLAGS="-DUSE_SYSTEM_Boost=OFF -DUSE_ITK=OFF -DUSE_SYSTEM_FFTW3=ON -DUSE_SYSTEM_HDF5=ON -DUSE_SYSTEM_ACE=ON -DUSE_NiftyReg=ON" MATRIX_EVAL="CC=gcc-5 CXX=g++-5" PYMVER=3

should be
   # -boost -itk +fftw3 +hdf5 +ace +niftyreg

You mean that it refers to the fact that the field is ON (+) or OFF (-) regardless of the meaning that may be reversed. Personally I find it very confusing. It'd be more rational to have that comment to highlight which packages get built or not. The other info can be gathered from the env line.

sure. but there are some other ON things in there, where the + does make more sense.
anyway, consistency between comments and code is important. sticking to Casper's will mean minimal .travis.yml changes, so I'd do that (and probably add a comment at the top that + means ON)

one job failed with
WARNING: The following packages cannot be authenticated!
  gcc-8-base libgcc1 libstdc++6 gcc-5-base libasan2 gcc-6-base libasan3
  libatomic1 libcc1-0 gcc-7-base libcilkrts5 libgomp1 libquadmath0
  libgfortran3 libisl15 libitm1 liblsan0 libmpfr4 libmpx0 libmpx2 libtsan0
  libubsan0 cpp-5 cpp-6 libgcc-5-dev gcc-5 libstdc++-5-dev g++-5 libgcc-6-dev
  gcc-6 libstdc++-6-dev g++-6
E: There were unauthenticated packages and -y was used without --allow-unauthenticated
apt-get.diagnostics
apt-get install failed
....
W: GPG error: http://ppa.launchpad.net/ubuntu-toolchain-r/test/ubuntu trusty InRelease: The following signatures couldn't be verified because the public key is not available: NO_PUBKEY 1E9377A2BA9EF27F
W: The repository 'http://ppa.launchpad.net/ubuntu-toolchain-r/test/ubuntu trusty InRelease' is not signed.
W: There is no public key available for the following key IDs:
1E9377A2BA9EF27F
W: http://ppa.launchpad.net/couchdb/stable/ubuntu/dists/trusty/Release.gpg: Signature by key 15866BAFD9BCC4F3C1E0DFC7D69548E1C17EAB57 uses weak digest algorithm (SHA1)
The command "sudo -E apt-get -yq --no-install-suggests --no-install-recommends $(travis_apt_get_options) install git-core build-essential g++-5 g++-6 libboost-all-dev libhdf5-serial-dev libfftw3-dev python-dev python3-dev python-tk python3-tk libopenblas-dev libatlas-base-dev liblapack-dev libxml2-dev libarmadillo-dev libgtest-dev libplplot-dev swig ccache realpath libxslt-dev libace-dev" failed and exited with 100 during .

that isn't us obviously. I guess I'd ignore it.

@KrisThielemans I think it can be merged now.

There was one more boost left over. I've also squashed your 2 commits into 1 and fixed the log message. Let's see now.

OK, I had not seen your force push @KrisThielemans , which was like mine + a squash, so I force pushed deleting your commit. Now, is it possible to go backward?
Or let's keep it like this?

yeah... that's the problem with force push of course. I didn't think you'd still be working on this. sorry.
also interesting to note that this made "my" Travis jobs fails, as the commit no longer existed. (makes sense of course).
I'm afraid I like my log message more :-; (in particular, I feel we need [TRAVIS] in the first line, but not in the detail of the log message) So I'll force push again if that's ok.

I'll go ahead with the push.

Please do.
I'm committed....


Fix rake violations

Running rake produced warnings.  This change fixes some of them.

+1 , need it to run kitchen with ruby 1.9.3 on scientific linux

@coderanger that's really a blocker for using the kitchen-docker on many platforms without most recent ruby. Even RHEL 7 ships ruby2.0 .
Could you take a look ? thanks!

This mixes style fixes with a more substantial feature change. Please remove the latter as we haven't decided if support Ruby 1.9 or 2.0 is desired at this point. @ytsarev Generally Test Kitchen is used by installing the ChefDK packages, which include their own Ruby environment which is new enough to work fine with the current code.

@coderanger my use case is puppet testing, so ChefDK is absolutely no-go

@ytsarev You can still use ChefDK to install Test Kitchen even when using it for Puppet :)

https://github.com/portertech/kitchen-docker/pull/151 isolates the rake style issues

Closing this out, should fixed in master.


Catching strange compile error

When I just include your dependency into my gradle project I'm catching this
Error:(2) Error retrieving parent for item: No resource found that matches the given name 'android:TextAppearance.Material.Widget.Button.Inverse'.

Any other requirements to be met?

Some more info on that. I'm using
compile 'com.android.support:appcompat-v7:21.0.0'

The error is:
/Users/myUserName/StudioProjects/MyProject/myProject/build/intermediates/exploded-aar/com.android.support/appcompat-v7/23.1.1/res/values-v23/values-v23.xml
Error:(2) Error retrieving parent for item: No resource found that matches the given name 'android:TextAppearance.Material.Widget.Button.Inverse'.
Error:(2) Error retrieving parent for item: No resource found that matches the given name 'android:Widget.Material.Button.Colored'.
Error:Execution failed for task ':myProject:processDebugResources'.
> com.android.ide.common.process.ProcessException: org.gradle.process.internal.ExecException: Process 'command '/Users/myUserName/android-sdk-mac_x86/build-tools/21.0.1/aapt'' finished with non-zero exit value 1

That error is something in your project, which is not related to Android Upload Service.

No, it is not. If I remove your dependency, the error is gone. Thanks

The only cause of this error is a mismatch in Android support libraries version. Android Upload Service uses v.23.1.1 and in your project you're using v.21. Update your project to the last version or check the solution in #75

Yes, indeed, this is the problem. Unfortunately I cannot upgrade to 23, because the permission model has changed and right now there is no time to change it all.
So it seems I can't use your library

Support library is used only for notifications compatibility. You can use
v.21 too. Try the solution posted in #75 and change the version to 21. It
should work.
Il 17 gen 2016 8:01 PM, "neilyoung"<EMAIL_ADDRESS>ha scritto:

Yes, indeed, this is the problem. Unfortunately I cannot upgrade to 23,
because the permission model has changed and right now there is no time to
change it all.
So it seems I can't use your library
—
Reply to this email directly or view it on GitHub
https://github.com/alexbbb/android-upload-service/issues/81#issuecomment-172366246
.

No, sorry. This doesn't work for me. I admit your library works with a brand new project. But unfortunately the world is mostly legacy.

I tried a lot. This should work. But it doesn't...
apply plugin: 'com.android.application'
android {
compileSdkVersion 'Google Inc.:Google APIs:22'
buildToolsVersion "22.0.1"
defaultConfig {
    applicationId "com.MyProject.myProject"
    minSdkVersion 22
    targetSdkVersion 22

}
configurations.all {
    resolutionStrategy {
        force 'com.android.support:support-v4:23.1.1'
        force 'com.android.support:appcompat-v7:23.1.1'
    }
}
buildTypes {
    release {
        minifyEnabled true
        proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-project.txt'
    }
}

dexOptions {
    preDexLibraries true
}

}
dependencies {
compile project(':supertooltip')
compile project(':navizonLocation')
compile 'com.google.code.gson:gson:2.3'
compile 'com.google.protobuf:protobuf-java:2.4.1'
compile 'com.google.maps.android:android-maps-utils:0.4+'
compile 'com.android.support:appcompat-v7:23.1.1'
compile 'com.google.android.gms:play-services:6+'
compile files('libs/acra-4.5.0.jar')
compile files('libs/universal-image-loader-1.9.1.jar')
compile 'com.alexbbb:uploadservice:1.6'

}
Be sure, I have tried any other combination of target/build/minSDK. Nothing helps.

compileSdkVersion should match the version of the support library and I know it's a good practice to always use the latest available build tools. In your case, have you tried something like this?
apply plugin: 'com.android.application'

android {
    compileSdkVersion 'Google Inc.:Google APIs:23'
    buildToolsVersion "23.0.2"

    defaultConfig {
        applicationId "com.MyProject.myProject"
        minSdkVersion 22
        targetSdkVersion 22

    }
    configurations.all {
        resolutionStrategy {
            force 'com.android.support:support-v4:23.1.1'
            force 'com.android.support:appcompat-v7:23.1.1'
        }
    }
    buildTypes {
        release {
            minifyEnabled true
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-project.txt'
        }
    }

    dexOptions {
        preDexLibraries true
    }

}

dependencies {
    compile project(':supertooltip')
    compile 'com.google.code.gson:gson:2.3'
    compile 'com.google.protobuf:protobuf-java:2.4.1'
    compile 'com.google.maps.android:android-maps-utils:0.4+'
    compile 'com.android.support:appcompat-v7:23.1.1'
    compile 'com.google.android.gms:play-services:6+'
    compile files('libs/acra-4.5.0.jar')
    compile files('libs/universal-image-loader-1.9.1.jar')
    compile 'com.alexbbb:uploadservice:1.6'
}

I'm sure this issue is caused by Google Play Services lib...

I've been able to reproduce exacly the issue you got with a project from scratch and I've documented the solution here: https://github.com/alexbbb/android-upload-service/wiki/Setup
Ignore the initial setup instructions which are for the upcoming 2.0 release and check the troubleshooting section. I've also tried to reproduce your error by adding
compile 'com.google.code.gson:gson:2.3'
compile 'com.google.protobuf:protobuf-java:2.4.1'
compile 'com.google.maps.android:android-maps-utils:0.4+'
compile 'com.android.support:appcompat-v7:23.1.1'
compile 'com.google.android.gms:play-services:6+'

into the dependencies section of the app with which I've reproduced your error, but after adding the configurations.all instruction, everything works. I suspect that the dependency issue could be somewhere in those dependencies you have:
compile project(':supertooltip')
compile files('libs/acra-4.5.0.jar')
compile files('libs/universal-image-loader-1.9.1.jar')

No, I'm sorry to disappoint you. This doesn't work for me. But the error is different now:
Error:(131) Attribute "theme" has already been defined
File is ../build/intermediates/res/merged/debug/values/values.xml

...and after falling back to gradle 1.2.3
../build/intermediates/exploded-aar/com.google.android.gms/play-services/4.4.52/res/values/wallet_colors.xml
My project is completely fucked up now :(

Good news. I could recover from the latest error by replacing
compile 'com.google.android.gms:play-services:4+'

by
compile 'com.google.android.gms:play-services:6.1.11'

And then your suggested fix did work. Thanks for your efforts

@neilyoung managing dependencies is not easy and the mess is always around the corner. Every time a new tool comes around, they promise us it will be the best thing since sliced bread, but as we know, it's never easy like that :) Glad that you've found the solution. I'm closing this ticket.

You say it :) I hope I will have more fun using your component. But if not: I know you as a smart and responsive person now :))
Thanks again

Works perfectly, btw. Thanks for convincing me to not give up :)
Regards

Am 18.01.2016 um 10:45 schrieb Alex Gotev<EMAIL_ADDRESS>@neilyoung https://github.com/neilyoung managing dependencies is not easy and the mess is always around the corner. Every time a new tool comes around, they promise us it will be the best thing since sliced bread, but as we know, it's never easy like that :) Glad that you've found the solution. I'm closing this ticket.
—
Reply to this email directly or view it on GitHub https://github.com/alexbbb/android-upload-service/issues/81#issuecomment-172480235.

You're welcome :+1:

BTW: After all I switched my toolchain to API 23 now, keeping targetSDKVersion 21. Everything works fine. By keeping the lower SDK target I'm not immediately forced to switch all to the new permissions model. The resolutionStrategy entry is of course not required anymore.


[T4A3][T16-B1] Ong Li-Jen

Changed files to allow for code to be reused through inheritance

Ready for review

@lijen1994 Some comments added. Please close the PR after reading comments.


Remove unnecessary node-proxy-agent dependency

This removes the increase in download size that happened when adding the proxy feature.
Maintain proxy feature using needle's built-in proxy support.
Added ability to set custom agent using constructor option.
Fixes #158

FYI @starpit

Codecov Report

Merging #175 into master will increase coverage by 0.24%.
The diff coverage is 100%.

@@            Coverage Diff             @@
##           master     #175      +/-   ##
==========================================
+ Coverage   99.03%   99.27%   +0.24%
==========================================
  Files          14       14
  Lines         414      416       +2
==========================================
+ Hits          410      413       +3
+ Misses          4        3       -1

Impacted Files
Coverage Δ

lib/client.js
98.9% <100%> (+1.14%)
:arrow_up:

Continue to review full report at Codecov.

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


[BUG] Unable to select Customer Search Provider

Deployment details:

App version [e.g. v1.7.4]: 2.1.0
Platform [e.g. amd64, arm64, arm/v7]: amd64
Docker image tag [e.g. latest, multiarch]: latest

Bug description:
I have a custom search provider configured (Whoogle) but when I try and change the search on the search option on the Settings page, it selects Wikipedia instead of Google. I have tried restarting and recreating the container. I have also tried logging out and back in again.

Steps to reproduce:

Go to Settings | Search
Click on Default search provider drop down lost
Scroll down to Whoogle
Click Save changes

What prefix are you using? Wikipedia is using w so you can't use it for your provider.

I was using w but with the addition of Wikipedia, that must have caused an issue. Now that I have changed it, it's allowing me to save. Thanks for helping me fix it.


Going forward

Hey!
Take a look at my project https://exelord.github.io/ember-custom-actions/
Maybe you will find some inspiration and ideas how to make it even better :)
Cheers

@Exelord, your project looks neat but I don't have any use-case around it for myself that I could suggest to improve it or something to adopt in this addon.
Closing this. Feel free to re-open if you have something to add. :grin:


"Filtered HTML" rendering issues

I just love the comment editor in Storeman, it makes writing and editing comments on OpenRepos much easier than in a Web-browser.
By using it intensively, I noticed a few minor rendering issues:

 does not retain CRs (carriage returns), when rendered:
See https://openrepos.net/comment/25803#comment-25803
versus
This is the biggest and likely most easily resolved of these three issues.
Web-links are sometimes rendered in blue and sometimes in white:
See https://openrepos.net/comment/25779#comment-25779
versus
This is just a bit confusing, as I cannot sense any difference between those links (those rendered in blue versus those in white).
I personally don't mind, if the colour of web-links is blue or white, but a light blue (as e.g. on OpenRepos' website) is most common and hence most easily recognised.  But whatever colour, if there is no difference between those links, IMO they shall be rendered in the same colour.
Blockquotes are not easily recognised as such (as they are simply rendered as indented, regular text):
See https://openrepos.net/comment/25791#comment-25791
vs.
Sorry, I lack a good idea how to resolve this easily.  The best what comes to my mind is to "steal" from OpenRepos' web-renderer the idea of enclosing the (indented, regular) text in oversized quotation marks, i.e. having them (but solely the quotation marks) rendered, as if within .

Tested with Storeman 0.0.28

Sorry for a late reply.

For now Storeman uses the Qt built-in renderer for the formatted text. I'm not sure (I don't remember) but it seems that it doesn't handle the pre tag as I have this code

https://github.com/mentaljam/harbour-storeman/blob/cdbd1e623724ebd5c3cc50f9f4eade3e328a5a9d/qml/components/CommentDelegate.qml#L163
I just replace the pre text with a styled paragraph. I think in this case I need to replace all the \n symbols with the br tag.

The same about the a tag - I just replace all the occurrences with styled links

https://github.com/mentaljam/harbour-storeman/blob/cdbd1e623724ebd5c3cc50f9f4eade3e328a5a9d/qml/components/CommentDelegate.qml#L161
As I see the example you've provided contains strong tags and my parser doesn't process such links in a proper way. It also could be fixed.

This is the most complicated part. I also can replace all blockquotes with styled paragraphs but I don't think I can do something similar to the OpenRepos.

@mentaljam, thanks for your analysis and reply.
Regarding point 1: Sounds good.

Yes, the  tags within   are the difference, which I failed to see.
Creating a RegEx, which allows for other tags within   does not seem to be too hard, but it seems that a couple of tags have to be explicitly prevented (e.g. ).  This is where things may become too complicated.
As this is just a visual inconvenience, it may make sense to close point 2 as "Won't fix" (for now).

As stated, it was just an suggestion to render this similarly to OpenRepos (so people are not surprised by differing representations).
Making blockquotes more easily recognisable as such in any different way, would already constitute an improvement.

@Olf0, blockquotes are also have a bit different colour now. I've played around with some styles and have chosen one seemed to me the most suitable.

Oh, yeah.  Didn't see that detail yesterday late night.  Nice, thanks.

Oh, yeah.  Didn't see that detail yesterday late night.  Nice, thanks.


what is correct version to install ?

when i added pod 'RSSelectionMenu' into my podfile i got following message in terminal
Installing RSSelectionMenu (3.3)
which means it is installing 3.3
and when i addedd pod 'RSSelectionMenu', '~> 5.2.1' into podfile i got following message in terminal
CocoaPods could not find compatible versions for pod "RSSelectionMenu":
  In Podfile:
    RSSelectionMenu (~> 5.2.1)

None of your spec sources contain a spec satisfying the dependency: `RSSelectionMenu (~> 5.2.1)`.

Please define which is correct version to install.

@d33pak-s1ngh
Try to run the command pod update first

is there way in which i can directly install latest version pod update is headache it will change many things.
Thank you for your support.

@d33pak-s1ngh
You try
pod update RSSelectionMenu


check if token is still refreshable

we should check if token is still refreshable:
Allowed error is jwt.ValidationErrorExpired, jwt.ValidationErrorNotValidYet means token is completely outdated

Hi @urakozz,
Thanks for your PR.
I am not sure about it though. We do check for errors at that point. The comment just means that there can't be an error because at that point token has already been checked. Also, currently it doesn't pass tests because we error in the default case.
Maybe I am missing something.
Cheers,
Stephan


Use native List.contains method to replace for-loop code in SelectElement.java

Problem
In SelectElement class, two for-loop code to search String in a List can be replaced with the native Java List.contains method.
Potential solution
Use Java List.contains method to replace for-loop code.

The code is reviewed and merged. Close this issue.


fix: [#4470] Migrate off @azure/ms-rest-js tools

Fixes #4470
Description
This PR replaces the uses of @azure/ms-rest-js in the following botbuilder-js libraries.

[ ] botbuilder
[ ] botbuilder-ai
[ ] botframework-connector
[x] tools

Specific Changes

Replaced the @azure/ms-rest-js imports with @azure/core-http.
Added @azure/core-http to libraries package.json.
Updated unit tests to work with core-http RestError.

Testing
The following image shows some samples working after the update.

Pull Request Test Coverage Report for Build<PHONE_NUMBER>

0 of 0   changed or added relevant lines in 0 files are covered.
82 unchanged lines in 5 files lost coverage.
Overall coverage decreased (-0.4%) to 84.288%

Files with Coverage Reduction
New Missed Lines
%

libraries/botbuilder-lg/src/templateExtensions.ts
1
84.48%

libraries/botframework-streaming/src/utilities/createNodeServer.ts
1
78.57%

libraries/botframework-streaming/src/namedPipe/namedPipeServer.ts
12
50.68%

libraries/botframework-streaming/src/namedPipe/namedPipeClient.ts
17
34.09%

libraries/botframework-streaming/src/namedPipe/namedPipeTransport.ts
51
3.92%

Totals

Change from base Build<PHONE_NUMBER>:
-0.4%

Covered Lines:
20264

Relevant Lines:
22770

💛  - Coveralls


fix: Add --stdio to the argument of vscode-langservers-extracted

In my environment, it did not start properly without --stdio, so I added the argument.

Thank you for merging!


Bug: Can't open notification from a Discussion page

I had a notification of a reply here: https://github.com/prisma/prisma/discussions/4185
Clicking the notification in the Gitify app did nothing. I assume this is because Discussions are a new feature and aren't expected by the app, yet.

Duplicate of https://github.com/manosim/gitify/issues/501


Explore Webauthn for user sign in

https://w3c.github.io/webauthn/

For supporting Touch ID instead of password entry


Add RiscV64 Support To Linux Installer Process

Add RiscV64 Support To Linux Installer Process For JDK21 onwards.

First issue, is that jf-cli is not supported on RISC-V

Requires docker buildx plugin.. sudo apt install docker-buildx

RiscV is headless, so will need to adjust the dependencies appropriately.

Installers uploaded.


fix: fix regular integration test

With #1282 new test images were pushed, thus changing the signed digests. The previous digest was pinned inside the regular integration test. This has been updated.
Checklist

[x] PR is rebased to/aimed at branch develop
[x] PR follows Contributing Guide
[x] Added tests (if necessary)
[x] Extended README/Documentation (if necessary)
[x] Adjusted versions of image and Helm chart in Chart.yaml (if necessary)

Codecov Report
All modified lines are covered by tests :white_check_mark:

Comparison is base (92affcf) 96.58% compared to head (8e798cf) 96.58%.

:exclamation: Your organization needs to install the Codecov GitHub app to enable full functionality.
Additional details and impacted files
@@           Coverage Diff            @@
##           develop    #1309   +/-   ##
========================================
  Coverage    96.58%   96.58%
========================================
  Files           23       23
  Lines         1319     1319
========================================
  Hits          1274     1274
  Misses          45       45

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


mgmt hybrid, support get AzureEnvironment from metadata

Description
fix https://github.com/Azure/azure-sdk-for-java/issues/21503
Please add an informative description that covers that changes made by the pull request and link all relevant issues.
If an SDK is being regenerated based on a new swagger spec, a link to the pull request containing these swagger spec changes has been included above.
All SDK Contribution checklist:

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

General Guidelines and Best Practices

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

Testing Guidelines

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

@bbridges
I will merge it, if PR is OK for you.
However I am not able to verify the test ArmMetadataTests.authenticateAzureResourceManager() on Azure Stack as lack of auth (I've tested it on public Azure).
So you might have to test it on your side to see whether it works fine for Azure Stack.

I was able to verify it by running the ArmMetadataTests.authenticateAzureResourceManager test and also the ResourceManagementTest.canCreateResourceGroup test against an environment by swapping out the metadata endpoint code I had added to ResourceManagementTestBase with the new utility function.
The only potential problem I see is that in order to do this I needed to make a circular dependency. This utility would only be usable if we're using the top-level hybrid resourcemanager package. So individual hybrid resourcemanager packages can't be used with the utility without taking a dependency on all the hybrid resourcemanager packages, nor can data-plane keyvault on its own when trying to use it. Otherwise, everything is good.

@bbridges
Reasonable concern. Some of this depends on what proportion of user will use the aggregate package azure-resourcemanager, what proportion will choose to use single package.
From our experience on track1 and track2 Java SDK, a large proportion of customer will directly use the aggregate package, as this is the (almost exclusive) usage demonstrated in all README, MSDocs, Samples, etc.
Some enterprise customer will do more, as they would customize the aggregate package. E.g. some will add resource graph to it. But still they base their customization on existing code.
If you want a more universal approach, we can see if we are able to move this method to azure-core-management, which is the dependency of all mgmt SDKs (maybe into the AzureEnvironment itself). https://github.com/Azure/azure-sdk-for-java/tree/main/sdk/core/azure-core-management
But this likely takes longer for review (could be a good side as we involve more experienced devs), and its nearest release will likely in Jan.

I had a chat with Bala regarding this and he had agreed that dropping this down into azure-core-management would be a good approach. For the time being, we can keep the code to fetch the environment information just in our samples, and once it would be released, we can update the samples to include the utility function?

@bbridges
OK. I will prepare a PR on azure-core-management

PR to core-management https://github.com/Azure/azure-sdk-for-java/pull/25919

moved to https://github.com/Azure/azure-sdk-for-java/pull/25919


Only first action of the array works in iOS 11.3

Edit: Just to clarify. By "fulfil" down below I mean the action gets back. So far if more actions are present you can tab on them but the cell stays there with no indication that worked (which it did work). If you only return an action then the action gets "fulfilled" and there is the animation like in the example when you tab on "read". But even in the example tapping the flag does not return even if you add code to add a handler in to it. Hope it helps.
Steps to reproduce:

Download the code available in GitHub.
Navigate to the example.
Run it in an iOS 11.3 simulator.
The "Flag" action is called but the action itself does not get fulfilled.

This happens in my code as well. Since it happens in the demo I assume is in the framework itself.

Thanks @kurabi. Now it works. So there is no issue. It is just the docs are not clear on this and somehow it appears that when you have just one action in the array it hides automatically and then where there is two hidesWhenSelected is false. I think many of us would find it more consistent if hidesWhenSelected is set to true by default.
Thanks for your answer it was very helpful.