Update graceful node shutdown docs for beta

/sig node
Enhancement Issue - https://github.com/kubernetes/enhancements/issues/2000
Promotion of graceful node shutdown to beta - https://github.com/kubernetes/kubernetes/pull/99735

/assign @mvortizr

Updated the PR with update to the docs, this should be ready to review now.

@kubernetes/sig-node-pr-reviews Can you provide a review?

Hi @bobbypage , thank you for having your Doc PR ready for review, here are upcoming doc related dates for the 1.21 release:

 Docs Ready for Review deadline is March 24
Docs Ready to Merge deadline is March 31

Hi @caesarxuchao @dchen1107 @SergeyKanzhelev or @karan, can you provide a technical review and a technical lgtm for this PR.
Thank you

/cc @mrunalp

@bobbypage the PR description mentions that it is a:

Placeholder PR for Graceful Node Shutdown Beta docs

If this is ready for review, I recommend you reword that so it's clear.

Thanks @sftim this is ready for review, I updated the PR description and addressed your comments.

/approve

/lgtm

/lgtm cancel

@bobbypage Please rebase

LGTM if rebased the “obvious” way.

Rebased, thanks for the review! PTAL again.

Hi @caesarxuchao @dchen1107 @SergeyKanzhelev @karan @mrunalp @kubernetes/sig-node-pr-reviews  , please provide a technical review (tech lgtm) for this PR by March 31 to get this into the release. Thank you!

I'm happy to LGTM this. We can revert if there's been some kind of grave error here!
/lgtm


VidLii support

Please follow the guide below

You will be asked some questions and requested to provide some information, please read them carefully and answer honestly
Put an x into all the boxes [ ] relevant to your issue (like this: [x])
Use the Preview tab to see what your issue will actually look like

Make sure you are using the latest version: run youtube-dl --version and ensure your version is 2017.08.09. If it's not, read this FAQ entry and update. Issues with outdated version will be rejected.

[x ] I've verified and I assure that I'm running youtube-dl 2017.08.09

Before submitting an issue make sure you have:

[x ] At least skimmed through the README, most notably the FAQ and BUGS sections
[ x] Searched the bugtracker for similar issues including closed ones

What is the purpose of your issue?

[ ] Bug report (encountered problems with youtube-dl)
[x ] Site support request (request for adding support for a new site)
[ ] Feature request (request for a new functionality)
[ ] Question
[ ] Other

If the purpose of this issue is a bug report, site support request or you are not completely sure provide the full verbose output as follows:
youtube-dl https://www.vidlii.com/watch?v=Lq15kZRyd7a -v
[debug] System config: []
[debug] User config: []
[debug] Custom config: []
[debug] Command-line args: ['https://www.vidlii.com/watch?v=Lq15kZRyd7a', '-v']
[debug] Encodings: locale UTF-8, fs utf-8, out UTF-8, pref UTF-8
[debug] youtube-dl version 2017.08.09
[debug] Python version 3.4.5 - Linux-3.10.0-514.26.1.el7.x86_64-x86_64-with-centos-7.3.1611-Core
[debug] exe versions: ffmpeg 2.6.8, ffprobe 2.6.8
[debug] Proxy map: {}
[generic] watch?v=Lq15kZRyd7a: Requesting header
WARNING: Falling back on generic information extractor.
[generic] watch?v=Lq15kZRyd7a: Downloading webpage
[generic] watch?v=Lq15kZRyd7a: Extracting information
[generic] watch?v=Lq15kZRyd7a: Downloading m3u8 information
[debug] Default format spec: bestvideo+bestaudio/best
[debug] Invoking downloader on 'https://cdn.vidlii.com/videos/Lq15kZRyd7a.mp4'
[download] Destination: RE - Vidlii Time Capsule - Submit Vidlii Screenshots and Videos! august 11 2017 - VidLii-watchv=Lq15kZRyd7a.mp4
[download] 100% of 1.58MiB in 00:01

Description of your issue, suggested solution and other information
Hello, so download for VidLii does work but it is registered as generic. Someone add support please?  I don't think it gets the info.json either. Thanks.

Updated to 2017.08.09 and retried from there, sorry about that

--write-info-json.

What do you mean?

https://github.com/rg3/youtube-dl/issues/14472

https://github.com/rg3/youtube-dl/pull/14512

https://github.com/rg3/youtube-dl/pull/14779


🧪 test: merge extensions when main type has no members

Codecov Report

Merging #57 (d7e6a47) into main (2f7051d) will increase coverage by 0.00%.
The diff coverage is 100.00%.

@@           Coverage Diff           @@
##             main      #57   +/-   ##
=======================================
  Coverage   94.45%   94.46%
=======================================
  Files          24       24
  Lines         866      867    +1
=======================================
+ Hits          818      819    +1
  Misses         48       48

Impacted Files
Coverage Δ

...ramework/Internal/SyntaxStructure+Extensions.swift
97.72% <100.00%> (+0.05%)
:arrow_up:

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


Add radio group/button example page

Radio buttons are a commonly used control for desktop applications (in fact in the WinUI gallery it's categorized as "basic input"). There should be an example in Gallery of how to use them.

There are two main options that present themselves today:

A) Use a JS-only control like https://github.com/thakurballary/react-native-radio-buttons-group
B) Use react-native-xaml to access it directly

Would lean towards the former to start with since we already have a RNX page to cover the general concept, but it also wouldn't be bad to include within the page.

(drive by comment) If using a JS only control, the FURN Radiogroup might be an option

(drive by comment) If using a JS only control, the FURN Radiogroup might be an option

I love drive by comments from Saad!
You're right. And it'd be more Fluent than the cross-platform module I used (see #411).  As is I provided 2 samples:

cross-platform module (not Fluent)
react-native-xaml Windows-specific (very Fluent)

FURN would solve both.
Buuuuuut.... to incorporate FURN into Gallery (Which I want to do! Will open an issue from this comment), I think we first need to address these:

Required explicit importing of SVG (see https://github.com/microsoft/fluentui-react-native/issues/2613)
Required switching to classic runtime (see https://github.com/microsoft/fluentui-react-native/issues/1891)
Updates to the Windows visual theme (see this override)
(I hit these when developing this: https://github.com/chrisglein/artificial-chat/pull/116)

Maybe we can partner up and fixing these and getting FURN in this Gallery app?


html signup page

upload work for the sign up page here

the sign up page html/php has been uploaded


VS adds 'Service' item to csproj

Running tests in VS 2017 always adds <Service Include="{82a7f48d-3b50-4b1e-b82e-3ada8210c358}" /> to the csproj. This value doesn't appear to be necessary for vstest.console. Is this item necessary to run tests in VS? If not, can we stop adding this automatically to projects?
The best information I can find is that is was a perf optimization for opening test explorer. http://stackoverflow.com/questions/18614342/what-is-service-include-in-a-csproj-file-for/22917902#22917902. If so, could this be added implicitly to a project when Microsoft.NET.Test.Sdk is referenced?

Yes, test explorer uses this information to consider a project as test project. I agree, we should be able to provide a better marker from Microsoft.NET.Test.Sdk. Will close this issue in favor of related issue #394.


Added Python 3.7 support

Resolves #21
I managed to fix problem, even though it turned to be quite hacky to keep it working the way it was. Problem seemed to be because they changed prohibited behaviour for __aiter__ in 3.7.
I think we will wait for pylint 2.0 to come out before adding 3.7 into CI pipeline, but tortoise itself should work fine on 3.7

Pull Request Test Coverage Report for Build 30

24 of 25 (96.0%)  changed or added relevant lines in 4 files are covered.
80 unchanged lines in 5 files lost coverage.
Overall coverage decreased (-4.2%) to 82.326%

Changes Missing Coverage
Covered Lines
Changed/Added Lines
%

tortoise/queryset.py
2
3
66.67%

Files with Coverage Reduction
New Missed Lines
%

tortoise/backends/base/executor.py
1
94.61%

tortoise/backends/asyncpg/schema_generator.py
3
100.0%

tortoise/backends/base/db_url.py
5
89.09%

tortoise/backends/asyncpg/executor.py
9
100.0%

tortoise/backends/asyncpg/client.py
62
69.54%

Totals

Change from base Build 28:
-4.2%

Covered Lines:
1432

Relevant Lines:
1702

💛  - Coveralls


[Compaction] Fix blob store stats to return 0 value for the invalid log segment

This PR fixes one crucial bug for compaction.
When using StatsBasedCompactionStrategy, we would load all the log segments stats from BlobStoreStats, and figure out the cost benefit of compact various log segment. However, if a log segment doesn't have any valid index values, it would not be included in the map returned to StatsBasedCompactionStrategy, thus we might ignore this log segment, and decide to compact the log segments before and after it. This is a huge problem, since the log segments under compaction have to be consecutive.

Codecov Report

Merging #1845 (e642883) into master (729b93a) will decrease coverage by 58.71%.
The diff coverage is 73.68%.

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


Capture non-DHT related get errors in analytics

The Issue
We used to have get failures for reasons outside of sd/blob timeout, but they are no longer being captured. Some examples included: not enough disk space, no access to download location, max kee fee errors, and more exotic ones like 'NoneType' object is not subscriptable. This can give us additional insights as to why users experience download issues.
System Configuration

LBRY Daemon version:
LBRY App version:
LBRY Installation ID:
Operating system:

Anything Else

Screenshots

Internal Use
Acceptance Criteria

Definition of Done

[ ]  Tested against acceptance criteria
[ ] Tested against the assumptions of user story
[ ] The project builds without errors
[ ] Unit tests are written and passing
[ ] Tests on devices/browsers listed in the issue have passed
[ ] QA performed & issues resolved
[ ] Refactoring completed
[ ] Any configuration or build changes documented
[ ] Documentation updated
[ ] Peer Code Review performed

Do we not want to know when someone's video doesn't play due to SDK errors outside of DHT ones? We'd lose visibility into this otherwise. In the past, this has revealed other bugs like database corruption.
Adding to icebox and reopening.


Application error is shown when try to access URL

Steps to reproduce

Open browser
Go to https://leetcode-stat-api.herokuapp.com/<YOUR USERNAME>
See the page

Expected behavior
Stats should be shown
Actual behavior
Application error is shown:

I believe the whole leetcode api is down on leetcodes end, not just the Heroku app.

Hii, thanks for pointing our the problem.
The problem is with Heroku platform. As you know Heroku has stopped its free tier service, so the application/website is down.
I am unable to add my card to Heroku account and have raised a customer support ticket.
Will resolve the issue fast.
Thanks :)

Good luck! do you happen the know another way to reach the leetcode api? I was able to do this a while back, but cannot reach it now, my goal is to integrate it with slack.

Hey @adityagoel28 , why not host it on render meanwhile, if possible as it's free

Hi @furiousluck, I will check render for the hosting purpose.
Also, Heroku does not allow Indian issued credit cards, so need to switch somewhere else.
Thanks!


Handle questionnaire submission failure

What is the context of this PR?
Adds an error page for when questionnaire submission fails.
How to review
Create a submission failure by using the LogSubmitter and return a value of False in:
https://github.com/ONSdigital/eq-questionnaire-runner/blob/master/app/submitter/submitter.py#L9-L21

Ensure the content is as expected.
Clicking "submit your census again" should take you back to the page your submitted from, i.e hub/summary etc.

Checklist

[ ] New static content marked up for translation
[ ] Newly defined schema content included in eq-translations repo

Translations need updating @MebinAbraham

See my comment re spaces round kwargs - LGTM apart from that

Done :)


Dropdown not opened on click

I used the same code as your demo

     Drop Me!

one

two

three

When I click on the button, the dropdown does not open. But I add the attribute data-hover="true" it shows on hover.
I'm using :

"angular2-materialize": "^15.0.3",
"materialize-css": "^0.98",
"@angular": "^4.0.3",

jquery.js, hammer.js and materialize.min.js are all added correctly.

@RadouaneRoufid if you could share a repo (or plunker) that would be best to help out.
Otherwise, it's difficult to figure out any differences (which, as you pointed, there aren't any).

Trying to reproduce it on plunker showed me that I had a JQuery conflict which prevent the dropdown to work correctly.  Thank you very much and I'm very sorry @rubyboy, I waste your time.


from past.builtins import apply

what is from past.builtins import apply from apply
Traceback (most recent call last):
  File "/Users/wyx/workspace/aio_web/db/smartsql.py", line 4, in <module>
    from past.builtins import apply
ImportError: No module named 'past'

@631068264: See the top of that document. The past package is distributed with future on PyPI, so run pip install future.


Cloud Storage Java 7 nio library

This is an import of previous work which was reviewed internally.

Looks good!


[Release] Release 0.0.14

Release 0.0.14 with improvements:
[5c5d997ad5489376b2cdaa208ef11a26e64d6af4] Adds support for the WSGI server to read from a different registry
[2c2aa24e424b11d409ae186cb3d0830a07aa1453] Unnest several classes in the core module.
[54260fa72cf4267cc897f10e6c3dc6a163faad07] Add WSGI helper methods
[d771b38663630e6d5be494e958c960d46968b1c2] Add MetricsResource for twisted.
[d0cf20f60b8c6d2430d500e75f3ef112eb4bc214] syntax highlight last example in README
and fixes:
[5519118aff4565df722fe4db2159faf96fac2cb2] Fix test_exposition.py on Windows
[b3dc602f781c5627153c75c2250995ee7f376219] Follow naming conventions for graphite bridge tests
[a08b4bd2991470bfe845d4518fd4a318f0736c57] Make core test code filename match.
[abef969505fc5cb30367a4c16c7daf1205c1c2aa] Make tests pass on python3

0.0.14 has been out for while so this can be closed.


Finding references first time took ~30 seconds to initialize in the xterm.js repo

Testing #183684
Repro:

Open https://insiders.vscode.dev/github/Tyriar/xterm.js
Ctrl+p, RendererUtils
Go to isPowerlineGlyph
Shift+F12, 🐛 it showed a loading bar in the editor for a very long time, I was also expecting a status bar entry like the regular TS support gives in desktop

Saw this in console:

TS log
2023-05-30 12:51:34.704 [info] Successfully loaded workspace content for repository vscode-vfs://github/Tyriar/xterm.js
2023-05-30 12:51:34.704 [info] Starting TS Server undefined
2023-05-30 12:51:34.704 [info] Using tsserver from: https://main.vscode-cdn.net/insider/784e72bc4486b7ea5ad3447c506e31d949848592/extensions/typescript-language-features/dist/browser/typescript/tsserver.web.js undefined
2023-05-30 12:51:34.704 [info] <syntax> Forking...
2023-05-30 12:51:34.704 [info] <syntax> Starting...
2023-05-30 12:51:34.704 [info] <semantic> Forking...
2023-05-30 12:51:34.704 [info] <semantic> Starting...

I was stuck for about 30 seconds again waiting on manually triggered intellisense in this Tyriar/xterm.js/src/common/CoreTerminal.ts:

It was also working just fine in another file.

Thanks for testing. I just gave this a try but could not repo
Some speculation: normally instead of going to GitHub to read each file, we download an archive once  and then serve the file contents from there. It sounds like your machine may not be using that archive (or bypassing it)
Do you have GitLens installed/enabled? I believe Joyce was also seeing GItLense potentially cause some big slowdowns
Can you also check your network requests to see if we are making lots of requests to GitHub while the slow down is happening

I do see some slowdown in the TS repo:

https://insiders.vscode.dev/github/microsoft/typescript
Open checker.ts
Run Find all references on a symbol

In the network tab, I see a number of requests such as:
https://api.github.com/repos/microsoft/TypeScript/git/trees/fbd63e9e43dc4e64184b590fa156002a7be6d47e%3Asrc%2FtestRunner%2Funittests%2Fservices

It's not a huge number and the references typical resolve within 30 seconds or so, but I don't think we should need to hit network at all since we've downloaded the project archive

While the tar is being downloaded and extracted, you will still see requests like the following, which are intended to ensure that file system operations and editor restore aren't completely blocked on downloading the full tar (which can be very large for repos like TS):
https://api.github.com/repos/microsoft/TypeScript/git/trees/fbd63e9e43dc4e64184b590fa156002a7be6d47e%3Asrc%2FtestRunner%2Funittests%2Fservices

After the tar is extracted though you shouldn't see any more requests to https://api.github.com/repos/.
On the other hand, I see several requests to https://api.github.com/graphql like:

corresponding to the following filesystem ops in the Remote Repositories output channel (enabled with remoteHub.logLevel in settings):
fs.stat(vscode-vfs://github/microsoft/node_modules) took 194 ms (Provider query took 194 ms)

These are malformed URIs and continue to generate network requests even after the tar is made available.
Other extensions that you might have installed like GHPRI and GitLens also generate GitHub API calls, and the network tab doesn't tell you who's initiating them (you can sort of guess based on the GraphQL query name in the request), so you may benefit from disabling those when debugging @mjbvz

This issue has been closed automatically because it needs more information and has not had recent activity. See also our issue reporting guidelines.
Happy Coding!

I did not have gitlens installed

It does seem to be much faster now though, maybe things are cached but it's hard for me to reproduce.


Reapply Leap 16.0

Use unique package name agama-installer-Leap for Leap, so we do not conflict with Devel and Tumbleweed
Was reverted in #259

Related product change in https://github.com/os-autoinst/opensuse-jobgroups/pull/512 and openQA /admin/products /admin/groups


New version: MLJScientificTypes v0.1.1

Registering package: MLJScientificTypes
Repository: https://github.com/alan-turing-institute/MLJScientificTypes.jl
Created by: @tlienart
Version: v0.1.1
Commit: c534820bd809bbee0ddd57687a86ab093294d1ba
Reviewed by: @tlienart
Reference: https://github.com/alan-turing-institute/MLJScientificTypes.jl/commit/c534820bd809bbee0ddd57687a86ab093294d1ba#commitcomment-37097967

TagBot tag


Controlled vocabulary via Linked Data

As a metadata specialist,
I would like to link to external controlled vocabularies,
so that I can apply controlled values without managing them within the repository.
As a metadata manager,
I'd like to be able to use URIs that are translated into the strings in the public view,
So that I may use externally managed vocabularies.

caching and linked data?

This could be a static copy in the Database of LOC terms, and then allow later live queries to LOC.  On a weekly basis refresh the static cache for now.

Subjects and Agents from LOC.  There could be other ones including the Getty


Requires AsMut and AsRef with buffers > 32 bytes

I think this is similar to the issue #21:
Assume the following code:
extern crate bitfield;
use bitfield::bitfield;

pub const SIZE: usize = 33;

bitfield! {
    pub struct Foo(MSB0[u8]);
    impl Debug;

    pub u8, foo, _ : 0;
}

fn main() {
    let buffer = [0u8; SIZE];
    Foo(buffer).foo();
}

This will result in:
error[E0599]: no method named `foo` found for struct `Foo<[u8; 33]>` in the current scope
  --> src/main.rs:16:17
   |
7  | / bitfield! {
8  | |     pub struct Foo(MSB0[u8]);
9  | |     impl Debug;
10 | |
11 | |     pub u8, foo, _ : 0;
12 | | }
   | |_- method `foo` not found for this
...
16 |       Foo(buffer).foo();
   |                   ^^^ method not found in `Foo<[u8; 33]>`
   |
   = note: the method `foo` exists but the following trait bounds were not satisfied:
           `[u8; 33]: std::convert::AsRef<[u8]>`
           `[u8; 33]: std::convert::AsMut<[u8]>`

If you lower the size to "32" (or less), it works.

You can work around this using the following code:
let mut foo = Foo(buffer);
let foo = Foo(&mut foo.0[..]);
foo.foo();

But this requires to have a mut instance, even for "read-only" operations.

Like #28, this is fixed in the beta toolchain.

But this requires to have a mut instance, even for "read-only" operations.

This part of the issue is the same as #23


Add github actions for package and release on pypi

What?
New Continuous integration environment in Github.
Why?
Because our CI travis.org must be migrated and jobs are queued for a long time.
How?
2 new pipelines :

"Python package" to build, test and apply sonar analysis. Triggered at each push on a branch and each pull request to master.
"Python release" to package and upload on pypi. Triggered at each push a new tag.

Testing
This pull request should be built.
2 versions "1.1.5.dev1" and  "1.1.5.dev2" has been published on pypi to test the pipeline release.
Additional Notes
⚠ ⚠ Before merging we should disable travis automatic builds when we push on github.

I have no issues with it (if you remove travis contineous integration for it to be mergeable xD)
I will not valide it anyway because i dont know how python works. i let other valide this PR.
BTW SonarCloud recommended me to cache SonarCloud packages because they will be used in all PR.
I dont know if the plugin used for SonarCloud for python pipelines have this cache done in it.
The code i needed to add in my git actions: (found somewhere on SonarCloud doc)
      - name: Cache SonarCloud packages
        uses: actions/cache@v2
        with:
          path: ~/.sonar/cache
          key: ${{ runner.os }}-sonar
          restore-keys: ${{ runner.os }}-sonar

When should we disable travis builds? Once we do that, I think we can give this an official go ahead.

We can disable travis builds as soon as we are ready to merge (when this PR is approved).
About Sonar, I didn't receive any recommandation to add cache.


Search by Topic

related to any bug?

NO

why should this feature be implemented?

More and more projects are tagged with relevant keywords (topic). Search by language is sometimes too broad. I would like to search within javascript language by topic react.

how do you think should it be implemented?

Command line flag --topic -t    Search by topic that is used in combination with language flag.

is the feature similar to anything from other projects?

Not sure

Yep, having a topic filter will be nice, thanks

I've just taken a look at the docs, seems like it should be quite easy to add this feature: https://docs.github.com/en/github/searching-for-information-on-github/searching-for-repositories#search-by-topic
Not sure if including multiple topics would be possible

Hello, Could I work on this if nobody else is working?
Thanks.

No one is assigned, you can take this :)
As mentioned in the issue description we change have -t foo and --topic foo to filter by topic. if you can though, feel free to add the functionality to filter by multiple topics or even exclude a topic.

sure @hedythedev. Thanks. :)

@hedythedev  I have raised a PR. I had implemented the exclude topics options too but removed it as the api doesn't work as expected for the topic qualifier.
Details:
I tried to follow https://docs.github.com/en/github/searching-for-information-on-github/understanding-the-search-syntax#exclude-certain-results to exclude topics. However, this works for every other qualifier (eg: language, user) but not topic. For eg: https://api.github.com/search/repositories?q=stars:>=100+created:2020-07-06+language:python+-topic:deep-learning and https://api.github.com/search/repositories?q=stars:>=100+created:2020-07-06+language:python+topic:deep-learning give the same output (note the - before the topic qualifier in first url).
We can open a new issue to implement the exclude topic option and work on it when this is fixed by github. Thoughts?

We can open a new issue to implement the exclude topic option and work on it when this is fixed by github. Thoughts?

@ashikjm that will be great, thanks

That should work fine. Shall I update the README.md with this comment?

Can you elaborate on what you mean? Because I doubt !cli itself would work

!topic actually works. In the below example, there is only repo for creation date 2020-07-06 which has deep-cleaning topic tagged. That gets filtered out when I use !deep-cleaning
`(venv) ➜   starcli -L list  -l python  -d 2020-07-06
────────────────────────────────────────────────────────────────────────────────
                                                                                google-research/torchsde                                     473 ⭐ 23 🍴 473 👀

                                                                                Python

                                                                                Differentiable SDE solvers with GPU support and efficient sensitivity analysis.

                                                                                ────────────────────────────────────────────────────────────────────────────────

(venv) ➜   starcli -L list  -l python  -d 2020-07-06 -t '!deep-learning'
(venv) ➜
(venv) ➜  `

ok, I see.
But the thing is, if I go to https://api.github.com/search/repositories?q=topic:!deep-learning&sort=stars&order=desc according to the logic, there should be lots of repos that doesn't have deep-learning topic, but the above link doesn't return any items 🤔

using the search in github.com doesn't work either: https://github.com/search?q=topic%3A!deep-learning

oh yes. My bad. I was thinking it is filtering out the topic as there was only one repo and it didn't publish. It is actually looking for the  topic named "!deep-learning" which doesn't exist.

Yeah, ok no worries. As to the -QUALIFIER syntax I tried it on github.com/search and I think it actually works: https://github.com/search?q=cats+stars%3A>10+-topic%3Ajavascript&type=Repositories
but as you said doing this using the seach api doesn't work: https://api.github.com/search/repositories?q=stars:>=100+created:2020-07-06+language:python+-topic:deep-learning  because google-research/torchsde does have deep learning topic

That said, I did find this to be working: https://api.github.com/search/repositories?q=cats+stars%3A>10+-topic%3Ajavascript

Yes, looks very tricky. Seems like -topic works when concatenated with a string search.


Fuzzy search completion list

It's a feature request. In readline completion suggestions I can use my terminal's search functionality to search a word in the list of suggestions. In column and multicolumn mode of prompt toolkit I can't search suggestions (when there's lots of suggestions) unless it's the first word of the suggestion. It'd be great if auto completion by prompt toolkit offers an option to enable fuzzy search among suggestions.

Hi @sassanh,
Thanks for the suggestion! However, this is not prompt_toolkit's responsibility, but rather the one of the autocompletion algorithm. Prompt_toolkit offers a universal autocompletion API that any application can implement. Mysql and pgcli for instance have some kind of fuzzy searching. For ptpython, the searching is done entirely by the library called Jedi. Let me know if you think prompt_toolkit is missing something, that would prevent you from implementing fuzzy searching outside of prompt_toolkit.

Thanks for quick response. Can you kindly let me know in which repository it should be done (fuzzy search for ipython I mean) so that I can create an issue/PR there?

There is this library: https://github.com/amjith/fuzzyfinder
It's something you could plug into the auto completion code. Amjith is going to give a talk about this, next week at PyCon. However, I'm not sure how easy this is to integrate with Jedi, if even possible. You want Jedi to return all the completions that match the fuzzy string. See Jedi: https://github.com/davidhalter/jedi

I were able to wrap jedi's results with a fuzzy completion algorithm I like for vim without touching jedi. It'd be great if I could do the same here.

I don't know who's communication with jedi, ipython? or prompt-toolkit?

btw, this is the algorithm I love: https://github.com/sergei-dyshel/vim-abbrev-matcher/blob/master/python2/abbrev_matcher.py It only matches with beginning of words (not every random place in the string)
For example suppose you wanna find comment_form in a list, it's unlikely that you try to find it by cmntfm, it's much easier to recall it by comfo (at least that's the case for me.)

Closing this as it's not a prompt_toolkit issue.
It is something that has to be implemented in the completer of the specific applications, like IPython, ptpython, etc...


lxd-startup.service: drop dependency on lxc.service

That's only needed by full lxd.
Signed-off-by: Serge Hallyn<EMAIL_ADDRESS>

I'm not 100% sure that this is the case, but any codepath which does fail due to a missing bridge at container loading time would be a lxd bug in and by itself, so this seems like the right thing to do.
By the same logic, the cgmanager dependency should also be dropped.

That has been applied.


Application auto start

Add setting to add or remove application from Windows autostart
https://stackoverflow.com/questions/674628/how-do-i-set-a-program-to-launch-at-startup

Not possible for now without proper certificate. Got a warning from my antivirus software.


How to train and test the code？

The first contact with mmdetection, can you talk about how to train the network?

emmm...can you tell how to train the code on mm？ plz.


Capitalize first char in slash munge path

This PR changes the slash munging from https://github.com/sorbet/sorbet/pull/5987 to capitalize the first character for each part of a path. Instead of .../project/foo/bar_baz/..., we'll get .../Project/Foo/Bar_baz/....
Motivation

The directories provided to --ignore occassionally conflict with the new paths. They all are lowercase strings, so capitalizing the munged paths prevents conflicts. This closer matches the previous underscore munging as well.
Test plan

See included automated tests.

We have a policy of testing changes to Sorbet against Stripe's codebase before
merging them. I've kicked off a test run for the current PR.  When the build
finishes, I'll share with you whether or how it failed. Thanks!
Stripe employees can see the build results here:
→ https://go/builds/bui_M439yZkjPatHC4
→ https://go/builds/bui_M439lS9BlIc6a2


Add Disabled challenge filter button

Added a filter button to show or hide disabled challenges in the scoreboard
Fixes : #1288

Note : proper checks are in place and the newly added components are only visible in relevant environments. They're visible on localhost in the demo because I manually set the heroku check to true for testing

👍 Cool, that looks great! I'd just use only "Show disabled" as button text (for consistency with "Show solved") and maybe add an icon that fits well to it. Also the Info text, if shown only when there are disabled challenges, should read "Some challenges are disabled for security reasons!" and might be in warn color?

Done

I don't understand why the travis build is failing. I don't think I have tampered with anything that might interfere with e2e tests

I personally think that a info box, especially in a warning color, which is shown at all time is a bit too "attention grabbing".
Would prefer if this would be like a popover text on the button, only showing when actively hovered over.

Good point, @J12934 ... I think the link to the documentation is quite good, and we'd loose that in a tooltip. But we could actually move the info box down to the other ones... then it's less "in your face" maybe?

Or we only show the info message at the top when the "Show disabled" button is turned on?

But wouldn't it make more sense for it to be shown when the show disabled button is off? Because if it's on, you'll be seeing a bunch of challenges mark disabled in the scoreboard anyway.
Putting it at the bottom sounds like a good approach too, how should I go ahead?
Also, any idea why the travis build is failing on e2e tests?

I restarted the e2e job. It seems to have gotten stuck even before executing anything. Probably a Travis glitch.

Done, the warning is now only visible when the "Show disabled" button is activated

Okay cool! I'll fix the e2e issues tomorrow and then merge your PR! 👍

I pushed some changes into a new branch based on your PR. I'll close your PR and merge that branch.


⚠ PrivateHD has degraded performance

In c0445bf, PrivateHD ($PHD) experienced degraded performance:

HTTP code: 200
Response time: 1423 ms

Resolved: PrivateHD performance has improved in 04ab449.


UNDERTOW-2228 Undertow write-timeout can cause a truncate response for request coming through keep-alive connection

https://issues.redhat.com/browse/JBEAP-24358
https://issues.redhat.com/browse/UNDERTOW-2228
This change resets the expireTime variable in the
WriteTimeoutStreamSinkConduit at the end of each request. This should
prevent a subsequent request on the same connection to be affected by
timeout counter started during a previous request.

FYI @fl4via

Thanks! I added the original constructor back.

I can reproduce the Windows test freeze on a Windows VM easily, but so far didn't manage to do anything about it.
Attaching stacktrace screenshot of where the test case gets stuck (didn't manage to get clipboard sharing working with the Windows VM :) ). At first sight it looks like the httpclient gets stuck when reading the response entity, but it could be caused by some discrepancy on undertow side I guess...

Hello @fl4via , the stuck Windows tests are gone. There is one failure in DefaultServletCachingListenerTestCase in the "Undertow CI / JDK 17 - servlet - ubuntu-latest" which looks unrelated to me. Locally is passing.

Thanks @TomasHofman !
The failure is unrelated indeed. I was able to reproduce that issue in my computer once and verify why is the file failing to refresh. This issue arises when the OS has too many open files at the same time and it can't update it. You need to change a configuration in the Linux where you say how many open files are supported. When you increase the number in that config, the failure is sorted out. And it happens intermittently because it depends on the state of the OS at the moment it runs CI.


Actions that target multiple/all states

What do you think is the best way of dealing with this? I'm thinking of something like updating a text input in multiple states. Would you do it before the transition function? Or should there be a wildcard state to target all states? Or is it defeating the purpose of the state machine approach?

Or maybe something like this:
const globalActions = {
  TEXT_UPDATE: ({ text }: Action & {type: "TEXT_UPDATE"}, state: State) => ({ ...state, text }),
  CURSOR_POS: ({ pos }: Action & {type: "CURSOR_POS"}, state: State) => ({ ...state, pos })
}

      transition(state, action, {
        editing: {
          ...globalActions,
         // other actions
        },
        editingHashtag: {
          ...globalActions,
         // other actions
        },
        editingLink: {
          ...globalActions,
         // other actions
        },
      }),

Hi there @allforabit !
Yes! Exactly. When you have actions that covers multiple states, move them "up" and compose them in where needed. This avoids additional API surface and has the most flexibility. This is also why state is being passed as the second argument to the handler, so that you can isolate the handlers 😄
I am considering adding helper types though. So:
export type PickState<
  S extends { state: string },
  SS extends State["state"]
> = State extends { state: SS } ? State : never;

export type PickAction<E extends { type: string }, T extends E["type"]> = E extends {
  type: T;
}
  ? E
  : never;

This would allow you to write:
const globalActions = {
  TEXT_UPDATE: ({ text }: PickAction<Action, "TEXT_UPDATE">, state: State) => ({ ...state, text }),
  CURSOR_POS: ({ pos }: PickAction<Action, "CURSOR_POS">, state: State) => ({ ...state, pos })
}

Not much change in characters, but just a bit more explicit 😄

Lovely, I'll copy and paste those helpers in for now. Thanks @christianalfoni :-)


Decouple services, avoid app crash if one service fails

Problems like these #110 shall not crash the whole app but being catched and disable the service only.

fixes #108


Switch on/off state switches back and forth in Home app

Describe The Bug:
When I toggle the state of a switch, or even more often a lock, the Home app appears to get temporarily confused about the current state of the device. Sometimes it remains in the right state, but other times it either switches back and to the original state for a few seconds or in the case of my August lock, shows that the device is not responding.
To Reproduce:

Setup a switch through Smartthings
Ensure the switch appears on the Home app on your iPhone or other Apple device
Toggle the switch on (if it was off)

Expected behavior:
When turning on a switch, state of the switch should remain on until it is turned off
Current behavior:
When turning on the switch, the UI appears to show it on for a second, only to switch to off a second later, then back to on a few seconds after that
Logs:
The issue happened with the device "Coffee machine", which I turned on, then turned off a minute later.  The issue happened when the device was turned on, but not when it was turned off.
[10/22/2022, 1:09:51 PM] [Smartthings Plug (IK)] Radio Switch polling...
[10/22/2022, 1:09:55 PM] [Smartthings Plug (IK)] Received onGet() event for Main Floor Fireplace
[10/22/2022, 1:09:55 PM] [Smartthings Plug (IK)] Received onGet() event for Bedroom Light Virtual Switch
[10/22/2022, 1:09:55 PM] [Smartthings Plug (IK)] Received onGet() event for Top Floor Lights
[10/22/2022, 1:09:55 PM] [Smartthings Plug (IK)] Received onGet() event for Entrance Corridor Lights
[10/22/2022, 1:09:55 PM] [Smartthings Plug (IK)] Received onGet() event for Bedroom Fireplace
[10/22/2022, 1:09:55 PM] [Smartthings Plug (IK)] Received onGet() event for Living Room Lights
[10/22/2022, 1:09:55 PM] [Smartthings Plug (IK)] Received onGet() event for Coffee Lamp
[10/22/2022, 1:09:55 PM] [Smartthings Plug (IK)] Received onGet() event for Living TV Light
[10/22/2022, 1:09:55 PM] [Smartthings Plug (IK)] Received onGet() event for Entrance Door Light
[10/22/2022, 1:09:55 PM] [Smartthings Plug (IK)] Received onGet() event for Bedroom Main Lights
[10/22/2022, 1:09:55 PM] [Smartthings Plug (IK)] Received onGet() event for Kitchen Lights
[10/22/2022, 1:09:55 PM] [Smartthings Plug (IK)] Received onGet() event for Main Floor Stairs Lights
[10/22/2022, 1:09:55 PM] [Smartthings Plug (IK)] Received getCurrentState() event for Front Door Lock
[10/22/2022, 1:09:55 PM] [Smartthings Plug (IK)] Received onGet() event for Coffee Machine
[10/22/2022, 1:09:55 PM] [Smartthings Plug (IK)] Received onGet() event for Kitchen Counter Lights
[10/22/2022, 1:09:55 PM] [Smartthings Plug (IK)] Received onGet() event for Office Bathroom Lights
[10/22/2022, 1:09:55 PM] [Smartthings Plug (IK)] Received onGet() event for Office Main Lights
[10/22/2022, 1:09:55 PM] [Smartthings Plug (IK)] Received onGet() event for Bedroom Closet Lights
[10/22/2022, 1:09:55 PM] [Smartthings Plug (IK)] Received onGet() event for Kitchen Table Lights
[10/22/2022, 1:09:55 PM] [Smartthings Plug (IK)] Received onGet() event for Bedroom Bathroom Lights
[10/22/2022, 1:09:55 PM] [Smartthings Plug (IK)] Received onGet() event for Office Desk Light
[10/22/2022, 1:09:55 PM] [Smartthings Plug (IK)] Received onGet() event for Entrance Stairs Lights
[10/22/2022, 1:09:55 PM] [Smartthings Plug (IK)] Received onGet() event for Zen Lamp
[10/22/2022, 1:09:55 PM] [Smartthings Plug (IK)] Received onGet() event for iPhone
[10/22/2022, 1:09:55 PM] [Smartthings Plug (IK)] Received getContact() event for Radio Switch
[10/22/2022, 1:09:55 PM] [Smartthings Plug (IK)] onGet() SUCCESSFUL for Top Floor Lights. value = off
[10/22/2022, 1:09:55 PM] [Smartthings Plug (IK)] Top Floor Lights polling...
[10/22/2022, 1:09:55 PM] [Smartthings Plug (IK)] onGet() SUCCESSFUL for Living Room Lights. value = on
[10/22/2022, 1:09:55 PM] [Smartthings Plug (IK)] Living Room Lights polling...
[10/22/2022, 1:09:56 PM] [Smartthings Plug (IK)] onGet() SUCCESSFUL for Entrance Door Light. value = off
[10/22/2022, 1:09:56 PM] [Smartthings Plug (IK)] Entrance Door Light polling...
[10/22/2022, 1:09:56 PM] [Smartthings Plug (IK)] onGet() SUCCESSFUL for Main Floor Stairs Lights. value = off
[10/22/2022, 1:09:56 PM] [Smartthings Plug (IK)] Main Floor Stairs Lights polling...
[10/22/2022, 1:09:56 PM] [Smartthings Plug (IK)] onGet() SUCCESSFUL for Bedroom Light Virtual Switch. value = off
[10/22/2022, 1:09:56 PM] [Smartthings Plug (IK)] Bedroom Light Virtual Switch polling...
[10/22/2022, 1:09:56 PM] [Smartthings Plug (IK)] onGet() SUCCESSFUL for Main Floor Fireplace. value = on
[10/22/2022, 1:09:56 PM] [Smartthings Plug (IK)] Main Floor Fireplace polling...
[10/22/2022, 1:09:56 PM] [Smartthings Plug (IK)] onGet() SUCCESSFUL for Entrance Corridor Lights. value = on
[10/22/2022, 1:09:56 PM] [Smartthings Plug (IK)] Entrance Corridor Lights polling...
[10/22/2022, 1:09:56 PM] [Smartthings Plug (IK)] onGet() SUCCESSFUL for Bedroom Fireplace. value = off
[10/22/2022, 1:09:56 PM] [Smartthings Plug (IK)] Bedroom Fireplace polling...
[10/22/2022, 1:09:56 PM] [Smartthings Plug (IK)] onGet() SUCCESSFUL for Coffee Machine. value = off
[10/22/2022, 1:09:56 PM] [Smartthings Plug (IK)] Coffee Machine polling...
[10/22/2022, 1:09:56 PM] [Smartthings Plug (IK)] onGet() SUCCESSFUL for Coffee Lamp. value = on
[10/22/2022, 1:09:56 PM] [Smartthings Plug (IK)] Coffee Lamp polling...
[10/22/2022, 1:09:56 PM] [Smartthings Plug (IK)] onGet() SUCCESSFUL for Living TV Light. value = off
[10/22/2022, 1:09:56 PM] [Smartthings Plug (IK)] Living TV Light polling...
[10/22/2022, 1:09:56 PM] [Smartthings Plug (IK)] onGet() SUCCESSFUL for Bedroom Main Lights. value = off
[10/22/2022, 1:09:56 PM] [Smartthings Plug (IK)] Bedroom Main Lights polling...
[10/22/2022, 1:09:56 PM] [Smartthings Plug (IK)] onGet() SUCCESSFUL for Office Main Lights. value = off
[10/22/2022, 1:09:56 PM] [Smartthings Plug (IK)] Office Main Lights polling...
[10/22/2022, 1:09:56 PM] [Smartthings Plug (IK)] onGet() SUCCESSFUL for Kitchen Lights. value = off
[10/22/2022, 1:09:56 PM] [Smartthings Plug (IK)] Kitchen Lights polling...
[10/22/2022, 1:09:56 PM] [Smartthings Plug (IK)] onGet() SUCCESSFUL for Bedroom Bathroom Lights. value = off
[10/22/2022, 1:09:56 PM] [Smartthings Plug (IK)] Bedroom Bathroom Lights polling...
[10/22/2022, 1:09:56 PM] [Smartthings Plug (IK)] Reset Front Door Lock to 1
[10/22/2022, 1:09:56 PM] [Smartthings Plug (IK)] onGet() SUCCESSFUL for Front Door Lock. value = locked
[10/22/2022, 1:09:56 PM] [Smartthings Plug (IK)] Front Door Lock polling...
[10/22/2022, 1:09:56 PM] [Smartthings Plug (IK)] onGet() SUCCESSFUL for Zen Lamp. value = on
[10/22/2022, 1:09:56 PM] [Smartthings Plug (IK)] Zen Lamp polling...
[10/22/2022, 1:09:56 PM] [Smartthings Plug (IK)] onGet() SUCCESSFUL for Kitchen Counter Lights. value = on
[10/22/2022, 1:09:56 PM] [Smartthings Plug (IK)] Kitchen Counter Lights polling...
[10/22/2022, 1:09:56 PM] [Smartthings Plug (IK)] onGet() SUCCESSFUL for Office Bathroom Lights. value = off
[10/22/2022, 1:09:56 PM] [Smartthings Plug (IK)] Office Bathroom Lights polling...
[10/22/2022, 1:09:56 PM] [Smartthings Plug (IK)] onGet() SUCCESSFUL for Bedroom Closet Lights. value = off
[10/22/2022, 1:09:56 PM] [Smartthings Plug (IK)] Bedroom Closet Lights polling...
[10/22/2022, 1:09:56 PM] [Smartthings Plug (IK)] onGet() SUCCESSFUL for Kitchen Table Lights. value = off
[10/22/2022, 1:09:56 PM] [Smartthings Plug (IK)] Kitchen Table Lights polling...
[10/22/2022, 1:09:56 PM] [Smartthings Plug (IK)] onGet() SUCCESSFUL for Office Desk Light. value = off
[10/22/2022, 1:09:56 PM] [Smartthings Plug (IK)] Office Desk Light polling...
[10/22/2022, 1:09:56 PM] [Smartthings Plug (IK)] onGet() SUCCESSFUL for Entrance Stairs Lights. value = off
[10/22/2022, 1:09:56 PM] [Smartthings Plug (IK)] Entrance Stairs Lights polling...
[10/22/2022, 1:09:56 PM] [Smartthings Plug (IK)] Motion value from Radio Switch: closed
[10/22/2022, 1:09:56 PM] [Smartthings Plug (IK)] Radio Switch polling...
[10/22/2022, 1:09:56 PM] [Smartthings Plug (IK)] onGet() SUCCESSFUL for iPhone. value = present
[10/22/2022, 1:09:56 PM] [Smartthings Plug (IK)] iPhone polling...
[10/22/2022, 1:10:00 PM] [Smartthings Plug (IK)] Received onGet() event for iPhone
[10/22/2022, 1:10:00 PM] [Smartthings Plug (IK)] Received getContact() event for Radio Switch
[10/22/2022, 1:10:01 PM] [Smartthings Plug (IK)] onGet() SUCCESSFUL for iPhone. value = present
[10/22/2022, 1:10:01 PM] [Smartthings Plug (IK)] iPhone polling...
[10/22/2022, 1:10:01 PM] [Smartthings Plug (IK)] Motion value from Radio Switch: closed
[10/22/2022, 1:10:01 PM] [Smartthings Plug (IK)] Radio Switch polling...

Plugin Config:
{
            "name": "Smartthings Plug (IK)",
            "BaseURL": "https://api.smartthings.com/v1/",
            "AccessToken": "***",
            "GarageDoorMaxPoll": 40,
            "PollLocksSeconds": 10,
            "PollDoorsSeconds": 10,
            "PollSensorsSeconds": 5,
            "PollSwitchesAndLightsSeconds": 10,
            "platform": "HomeBridgeSmartThings"
        }

Screenshots:
N/A
Environment:

Plugin Version: 1.4.6
Homebridge Version:  1.5.0
Node.js Version: 16.18.0
NPM Version: ?
Operating System: Raspbian

I'm aware of the issue.  I will be fixing it soon.

Please test in 1.4.8.  Let me know.

Just updated, will keep testing. Already seems to be more responsive to state changes. Thanks!

Might be unrelated, but I noticed that the plugin failed on my Homebridge server. Unfortunately I needed to restart it before getting the logs, but thought i'd mention it. I'll keep testing.


[cudapoa] improve estimation of maximum graph length

POA graph length depends on the differences between multiple sequences in a window. As this difference can potentially grow by increasing the number of sequences in a window, we can modify heuristics to estimate the maximum graph length in BatchSize constructor to take this parameter into account. Using a fixed formula for maximum graph length can be wasteful in some cases and insufficient for some others.

Since this size depends on the input, difference between sequences in addition to the number of sequences, it is not possible to find a heuristic that works in all cases, but using BatchConfig() constructor now we can control maximum graph length and it is not a fixed formula.


Add a mechanism that can wait for the go-routines to finish

node.go may contain calls to go-routines.
For example, go checkTimeDrifts is a go-routines that runs in the background and checks the time drifts.
In order to close such go-routines, we use a term channel that the go-routines can listen to and this channel will be closed when we close the node's services.
In case the routines have some clean up to do we might also want to wait in stopServices func until we are sure all those resources are cleaned.
This could be achieved for example with a wait group.
We should think if we need such a mechanism or not. Currently, it is not important so this is left as a low-priority issue.

Not having this is causing some headaches in the API-related tests I'm writing. One of them monitors all logged errors, and without a way to cleanly wait until all services (launched in previous tests) have stopped running, the test keeps getting polluted with errors from previous tests as services shut down asynchronously. I may need to implement this to fix the tests.
It would also help a lot with #2067 (see also the change I made in 9bc6794f29f7bb7d0deab7aae2870af2c11adae1).

Consider using Tomb for managing goroutine lifecycle: https://pkg.go.dev/gopkg.in/tomb.v2?tab=doc
In a nutshell, it provides a tomb.Go(f func() error) method which you call instead of the regular go keyword. You can then call tomb.Kill() followed by tomb.Wait() which returns when all goroutines have returned.

Good to know. I think we pretty clearly want this, but it will require a pretty significant change to how we run services.

This is a big change, in the sense that each service now needs to receive a context and listen for termination using it instead of the existing mechanisms. Initializing this context and waiting for termination in the shutdown method are trivial. Replacing calls to go ... with calls to tomb.Go() takes some work but is pretty straightforward.
I think this can be a great task for one of the Go beginners that asked for something to do (with supervision). WDYT @lrettig?

If we agree to give this to someone from the community, I'll write detailed instructions in a fresh issue (cross referenced with this one) and close this in favour of that (this one says "consider" and we've now considered it).

I hesitate to mark tasks involving concurrency as good first tasks. It's a good second task :)

I agree with your sentiment, but I think that with detailed instructions and close supervision this task is mostly "wiring". I think it can also be scoped down by applying this to one module at a time.

I like the idea of doing it one module at a time. As we discussed in chat, it would be nice to design a clean interface that each "app module" implements: it can probably be as a simple as Initialize, Start, GracefulStop, and ForceStop, something along those lines. There's a lot more we could do to improve how we manage app services, but I think this would be a great starting point and is still straightforward enough that anyone could work on it.

I agree with most of what you said, but I disagree about some details. The service interface that makes sense to me is:
type Service interface {
    Start()
}

Most services already implement this interface (there are a couple of cases where Start() takes arguments from the configuration or returns an error, but these can easily be refactored away). So we could put all services in a slice and then start them all using a loop.
I'm not 100% sure the separation between initialization and starting services is even justified. It may be simpler to just have the initialization method start each service and saving the extra step - not sure about this one.
Stopping all services will be done by calling tomb.Kill() on the root Tomb. This initiates a graceful shutdown. While we currently only ever stop services when the node shuts down, if we ever need to support stopping a single service (or a subset of services), it's possible to create a child-tomb that can be killed without affecting its parent.
I don't understand what ForceStop is supposed to do. If the node is force-stopped (when panicing, or due to a sigkill), all goroutines are force-stopped and there's nothing we need to explicitly do to support that.
Initialize can't conform to a unified interface because each module has different dependencies that it needs to receive during initialization. I don't know of any good dependency injection frameworks for Go. If you do, I'd be interested to know, but either way, this sounds like a separate task, which is larger in scope than this one and we should consider it separately (if you want to advocate for it).

The reason I suggested separating Initialize and Start is because of the way the app is currently launched in cmd/node/node.go: first, an initialize method is called, then later a start method is called. There is already some distinction between these in the way the app/node is architected.
I don't have a strong opinion on adding ForceStop. It just seems to be a common pattern in go: see for instance the difference between net.http Server.Close and Server.Shutdown. I can't speak for other services, but in the case of the GRPC API services, a "graceful shutdown" would probably finish serving the current request, then exit, something along those lines.

Related: #514

I'd love to give this a try. Would it make sense to hop on a call with either/or both of you @noamnelke @lrettig to hash out the details? I'll be happy to accommodate your availabilities

I think @noamnelke and I need to get on the same page with respect to the interface design first - I'll make a note to discuss this with him next week! Let's keep in touch about it @howydev

Hey @howydev, @noamnelke and I had a chance to discuss this today. We both agree that the Tomb framework makes sense here: read this post for some background. Personally I still think that a more advanced interface for services including initialize, graceful stop/force stop, etc., would be nice, but it's probably a separate task and it can be done later. Feel free to work on this. Let us know what questions you have.

@lrettig still relevant?

I think this can be combined with #2094


Fix timer accuracy test

https://github.com/embedded-dev-research/itlab_2023/issues/30

Changed to +1000 ms upper bound


ci(actions): update actions/checkout action to v4.1.4

This PR contains the following updates:

Package
Type
Update
Change

actions/checkout
action
patch
v4.1.1 -> v4.1.4

Release Notes

actions/checkout (actions/checkout)
v4.1.4
Compare Source

Disable extensions.worktreeConfig when disabling sparse-checkout by @jww3 in https://github.com/actions/checkout/pull/1692
Add dependabot config by @cory-miller in https://github.com/actions/checkout/pull/1688
Bump the minor-actions-dependencies group with 2 updates by @dependabot in https://github.com/actions/checkout/pull/1693
Bump word-wrap from 1.2.3 to 1.2.5 by @dependabot in https://github.com/actions/checkout/pull/1643

v4.1.3
Compare Source

Check git version before attempting to disable sparse-checkout by @jww3 in https://github.com/actions/checkout/pull/1656
Add SSH user parameter by @cory-miller in https://github.com/actions/checkout/pull/1685
Update actions/checkout version in update-main-version.yml by @jww3 in https://github.com/actions/checkout/pull/1650

v4.1.2
Compare Source

Fix: Disable sparse checkout whenever sparse-checkout option is not present @dscho in https://github.com/actions/checkout/pull/1598

Configuration
📅 Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).
🚦 Automerge: Enabled.
♻ Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
🔕 Ignore: Close this PR and you won't be reminded about this update again.

[ ] If you want to rebase/retry this PR, check this box

This PR has been generated by Renovate Bot.

:tada: This PR is included in version 1.2.17 :tada:
The release is available on GitHub release
Your semantic-release bot :package::rocket:


Add support for state commands list, move, and rm

This PR resolve the issue https://github.com/charleszipp/azure-pipelines-tasks-terraform/issues/202

Appreciate you helping with the review @SimonAlling!

Thanks so much for the contribution @loispostula. The only issue I see is the repurposing of workspaceSubCommand to subCommand. I would request you leave workspaceSubCommand as its own input exclusively for workspace. The reason is the renaming of this input will break existing pipelines that have this input defined.
Instead of having workspace and state share the same input for subcommand, lets create a stateSubCommand input. Use stateSubCommand in the state command handlers. Then, revert the changes to workspace command handlers. Don't forget to update the tasks/terraform-cli/task.json to have the new stateSubCommand input. This input follow similar configuration/definition as workspaceSubCommand.
Finally, please be sure to address the codeql comments. There are some unused imports in several files.

@charleszipp I did not think of the existing pipelines, only on simplifying management of Terraform subcommand. It is a very valuable input, I've adapted the PR accordingly

@loispostula would you mind updating the overview.md also to have examples of how to use these new commands? I usually just copy/paste what I setup in the test pipeline.
Also if you can share email I can add you to the ADO project that runs the CI pipeline so you can monitor any failures.

@loispostula the pipeline is getting a different error now. Given this worked for you locally, but its failing in the pipeline, I think state just needs to be added to the command input pickList. I would just push this myself but, I cant push to your fork.

merging. will fix the pipeline with follow up PR.


Can you improve on Quess...

... if I get you the sourcecode? Fix bugs, etc.

Hello, if you have access to the original (not de-compiled) source code it'd be great to have it available if only for preservation purposes.  If I find the time I can look into fixing some of the bugs (although I make no promises).


Next and previous button are not working when you are going through searched messages

OS: windows
OS Version: 10
Browser: chrome
Browser Version: 51.0.2704.84
Browser Extensions:
Resolution: 755 x 1193
Display Mode: rows
Client: Angular
Client Version: 3.3.2
Title: [Angular] Bug [secured.search.view]
Description: I searched for a word in emails, went to the search results and opened an email. From there, the Next and Previous buttons do not take me to the next / previous emails in the search results. In fact, they don't do anything.
Username: StevenF42
Contact Email<EMAIL_ADDRESS>

Please close this issue, I opened it here by mistake :)


upgrade(package): update resin-corvus to 1.0.0-beta.28

Closes: #1465

Sounds awesome. I'll test the fix before approving, hopefully later today.

Somehow the Appveyor builds are passing, but the Travis builds are all failing with:
> node ./scripts/clean-shrinkwrap.js
Removing: 7zip-bin-mac, 7zip-bin-win, 7zip-bin-linux
Done
There are unstaged npm-shrinkwrap.json changes. Please commit the result of:
    npm shrinkwrap --dev
diff --git a/npm-shrinkwrap.json b/npm-shrinkwrap.json
index d83b74d..9b8284b 100644
--- a/npm-shrinkwrap.json
+++ b/npm-shrinkwrap.json
@@ -3219,7 +3219,7 @@
     },
     "is-stream": {
       "version": "1.1.0",
-      "from"<EMAIL_ADDRESS><2.0.0",
+      "from"<EMAIL_ADDRESS><2.0.0",
       "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz"
     },
     "is-typedarray": {
@@ -3333,7 +3333,7 @@
     },
     "json-stringify-safe": {
       "version": "5.0.1",
-      "from"<EMAIL_ADDRESS>+      "from"<EMAIL_ADDRESS><5.1.0",
       "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz"
     },
     "json3": {
@@ -8395,7 +8395,7 @@
     },
     "pseudomap": {
       "version": "1.0.2",
-      "from"<EMAIL_ADDRESS><2.0.0",
+      "from"<EMAIL_ADDRESS><2.0.0",
       "resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz"
     },
     "punycode": {
@@ -9199,7 +9199,7 @@
     },
     "stack-trace": {
       "version": "0.0.9",
-      "from"<EMAIL_ADDRESS>+      "from"<EMAIL_ADDRESS><0.1.0",
       "resolved": "https://registry.npmjs.org/stack-trace/-/stack-trace-0.0.9.tgz"
     },
     "stat-mode": {
make: *** [sanity-checks] Error 1

:sob: :cry:   WTF?

And perhaps the commit-message should be updated to mention that this bumps the resin-corvus version, in addition to changing the 'location' ?

Aha! I've been doing some local testing, and (I'm not entirely sure how, but) I think if you make this change on top of the latest master, instead of on top of a commit that's 5 days old ( a5b1a92920981afa5de5913b665221acc46afe05 ), that might then stop ensure-staged-shrinkwrap.sh complaining.

I tested this and it seems work great :tada: @Shou Can you edit the commit message to make it close https://github.com/resin-io/etcher/issues/1465?

Updated commit message, rebased, and amended the new version to the resin-corvus tag.

@Shou I think you have to make the following shrinkwrap changes:
diff --git a/npm-shrinkwrap.json b/npm-shrinkwrap.json
index 3b5ae90..aa551b5 100644
--- a/npm-shrinkwrap.json
+++ b/npm-shrinkwrap.json
@@ -3219,7 +3219,7 @@
     },
     "is-stream": {
       "version": "1.1.0",
-      "from"<EMAIL_ADDRESS><2.0.0",
+      "from"<EMAIL_ADDRESS><2.0.0",
       "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz"
     },
     "is-typedarray": {
@@ -3333,7 +3333,7 @@
     },
     "json-stringify-safe": {
       "version": "5.0.1",
-      "from"<EMAIL_ADDRESS>+      "from"<EMAIL_ADDRESS><5.1.0",
       "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz"
     },
     "json3": {
@@ -8395,7 +8395,7 @@
     },
     "pseudomap": {
       "version": "1.0.2",
-      "from"<EMAIL_ADDRESS><2.0.0",
+      "from"<EMAIL_ADDRESS><2.0.0",
       "resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz"
     },
     "punycode": {

Damn, the above changes work on GNU/Linux locally for me, but now my MacBook Pro complains -.-

@Shou Let me take over that PR. I'll fight npm for you :P Better focus on https://github.com/resin-io/etcher/pull/1605

OK, Linux and Windows are green now. Lets see macOS...

Yay, all green :D

For future reference: was there some kind of "special trick" you were able to use to get it all working?

@lurch I kept playing with each of the suggested changes (e.g. adding/removing them) until everything was green.

Sounds painful :-(  Damn NPM :cry:


Implement retreiving the full values for expensive variables from the variable explorer

Currently we are just marking large items as expensive and fetching a short form representation. We need a UI gesture to fetch a longer form that can be passed off to an alternative viewer.

I'm going to close this item. Fetching full values is dependent on the function of the data viewer and should be part of that work, not part of the main variable fetching. A new item should be created when settled on the datagrid and function of the data grid.


Don't add import code fix for a default export if we got one for a named export

Fixes #20683

Closing to try to pursue a different solution (https://github.com/Microsoft/TypeScript/issues/20683#issuecomment-351557958)


NewLine for a Label

Can you add how to force text to a new line for a Label.

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

ID: f8a6273c-62b1-ac18-aab3-62f78bdbade8
Version Independent ID: 746bd180-ae67-313d-b949-538a508807b2
Content: Xamarin.Forms Label - Xamarin
Content Source: docs/xamarin-forms/user-interface/text/label.md
Product: xamarin
Technology: xamarin-forms
GitHub Login: @davidbritch
Microsoft Alias: dabritch

Hi @WillAutioItrax
There are two main options from XAML:
        <Label Text="First line
 Second line" />
        <Label>
            <Label.Text>
                First line
                Second line
            </Label.Text>
        </Label>

I'll get the doc updated.

I've fixed this in a PR, that will go live later.

Hi @davidbritch That is awesome - thanks!


Documentation and code discrepancy in tf.scatter_add

Please go to Stack Overflow for help and support:
https://stackoverflow.com/questions/tagged/tensorflow
If you open a GitHub issue, here is our policy:

It must be a bug, a feature request, or a significant problem with documentation (for small docs fixes please send a PR instead).
The form below must be filled out.
It shouldn't be a TensorBoard issue. Those go here.

Here's why we have that policy: TensorFlow developers respond to issues. We want to focus on work that benefits the whole community, e.g., fixing bugs and adding features. Support only helps individuals. GitHub also notifies thousands of people when issues are filed. We want them to see you communicating an interesting problem, rather than being redirected to Stack Overflow.

System information

Have I written custom code (as opposed to using a stock example script provided in TensorFlow): N/A
OS Platform and Distribution (e.g., Linux Ubuntu 16.04): N/A
TensorFlow installed from (source or binary): N/A
TensorFlow version (use command below): 1.8
Python version: N/A
Bazel version (if compiling from source): N/A
GCC/Compiler version (if compiling from source): N/A
CUDA/cuDNN version: N/A
GPU model and memory: N/A
Exact command to reproduce: N/A

The code for tf.scatter_add has argument use_locking=False, but the documentation says:

use_locking: An optional bool. Defaults to True. If True, the assignment will be protected by a lock; otherwise the behavior is undefined, but may exhibit less contention.

Added PR #20202 for the fix.


Gradle assemble doesn't generate MANIFEST.MF correctly

When I run gradle clean assemble at the root folder of the repo, the built build/libs/liferay-dummy-factory.jar doesn't contain all the bundle's properties (i.e. Bundle-Name, Bundle-SymbolicName, Import-Package etc).
I'm using the gradle committed in this repo and I've tried with more than one branch: master, 7.1.x, tag/0.16.

@rodrigopaulino Thank you for reporting this. Let me confirm, does "'I'm using the gradle committed in this repo" means using gradlew clean assemble?

Yes. That is correct

@rodrigopaulino , please checkout 7.1.x and git id 19650d73c64238288a3b8ff0a64c279af196390a, and run gradlew clean assemble should create a bundle properly.

Hey, @yasuflatland-lf.
I believe that you have to set the version of some dependencies for ones that are already released in build.gradle. See attached log.txt

@rodrigopaulino Please try this. I could successfully build and deploy with this steps below from scratch.

 It'll create bundles directory.
Under the ${HOME}/.gradle and those missing jars should be created.
Start up Liferay server under bundles directory that you just built.
Go to the liferay workspace where dummy factory is placed and go to the dummy factory root directory and run blade deploy.


Under Contact the email address link does not work properly

Expected Behavior
Email information should be displayed on the page and clicking the link should open and email with a proper email address in the "To" field.
Current Behavior
The "Email address" link in the Contact section opens a new email with a blank recipient.
Possible Solution

Steps to Reproduce (for bugs)

Context

Your Environment

Version used:
Environment name and version (e.g. Chrome 39, node.js 5.4):
Operating System and version (desktop or mobile):
Link to your project:

change to have users contact us on github


don't rewrite ~ @ to ~@

The basic issue is that ~ @a is being reformatted to ~@a, which is not semantically equivalent.
My guess is that most would choose to write ~(deref a) instead. This works fine, however (zprint-str '~(clojure.core/deref a)) prints ~@a, which might be the most likely manifestation of this bug in practice.
An alternative approach might be to not delete the space between the ~ @ in the first place. LMK if you'd rather do that.

Thank you very much for finding this problem.  I notice that you have found it in several tools...  Took me a while to figure out all of the details.  Fortunately rewrite-clj is parsing it correctly.  Several things...

I'm thinking I'm want to fix this a bit differently.  In the case where this comes up, I want to make the l-str of the :unquote be "~ " instead of "~".  I'm doing this by looking "ahead and down" to see if the :unquote is followed by a :deref.  You, on the other hand, were looking "back and up" (in my way of thinking) to see if the :deref was preceded by :unquote.  And you were then making the l-str of the :deref be " @".  I have made these changes in what has become a function called prefix-tags, instead directly in fzprint*.  It seems to work.  I am impressed that you figured out how to fix this at all in zprint.

I see you have changed from "~,@" to "~ @" today.  That was indeed my thinking as well.  I examined looking at whatever was before the :deref and just using that, but the complexity outweighed the utility in this rarely encountered situation.

It is moderately easier for me to go with the fix that I've put together and pick up your tests, give you credit in the "Contributors" section and not use this PR.  Alternatively, if you would prefer I use the PR, I can manually merge it and make the changes after that.  Either would be fine, whatever you prefer.
Thanks again for surfacing this problem and providing a solution!

I'm happy if you copy the tests and put a Co-authored-by: line in the commit using the git info from my branch.
I think my first version used your approach of starting with unquote. I have a PR in cljfmt that takes the opposite approach of not allowing :unquote and :deref nodes to touch in the first place.


Rendering includes with their own models

I have another requirement that I'm not sure how to implement using shopify-liquid.  My cms uses the concept of template objects.  It's basically a javascript object that has a template property that is the liquid template, and every other property is the model.  I realize I'll probably need to fork and make some changes to get this to happen, but I wanted to run it by you first to get your feedback.  For starters, I don't know how to pass an object as the model into an include.  I'd like to be able to:

include my template objects in other templates
have the included template objects use their own models in rendering themselves
allow the parent to override any model properties that share the same name
chain the above all the way to the top of a nested include chain (allow parents to override any model properties in their nested includes if they have the same name)

Here's an example:
var templateObjectOne = {
    name: "TemplateHeader",
    title: "Fancy Title",
    favoriteNumber: 11,
    template: "{{title}}-{{favoriteNumber}}"
};
// Need to somehow default the "include 'TemplateHeader'" to use the model in templateObjectOne.
//  Perhaps just completely alter includes to expect templateObjects in my fork
var templateObjectTwo = {
    name: "TemplateWithInclude",
    favoriteNumber: 7,
    template: "{% include 'TemplateHeader' %}
some content
"
};
// Ideally, I would change to simply - engine.render(templateObjectTwo);
var tpl = engine.parse(templateObjectTwo.template);
var output = engine.render(tpl, templateObjectTwo);
// should equal "Fancy Title-7
some content
"

I'd love to get your thoughts on this, especially on any quick wins or preferred extension points with what you have already.  I'd prefer to make as few changes as possible to your code.
Thanks,
Tim

I believe it'll be a quick solution to override the include tag by simply calling registerTag.
Note that shopify-liquid renders in synchronous fashion, so you may need to apply some patches to allow async template resolving. This can be done by returning a placeholder (maybe a HASH), and replacing it after included template resolved and rendered.


Add Parameterized.param.set context manager

Implements https://github.com/holoviz/param/issues/685

I should have chimed in https://github.com/holoviz/param/issues/685 back in February, or maybe at the time it was not so obvious to me, but I think that .param.set and .param.update aren't distinguishable enough naming-wise, that will just cause confusion (constant/readonly kind of confusion comes to mind, since we talked about it recently with Jean-Luc).
How about modifying .param.update so that it can also be used as a context manager? Here's a prototyped implementation where calling .update returns an instance of _Update while previously (as in Param now on the main branch) it returns None. I think that's okay?
class _Update:

    def __init__(self, instance):
        self.instance = instance

    def __call__(self, **kwargs):
        self.restore = self.instance.kwargs
        self.instance._update(**kwargs)
        return self

    def __enter__(self):
        print('ENTER')

    def __exit__(self, *exc_details):
        print('EXIT')
        self.instance._update(**self.restore)
        self.restore.clear()

class Parameters:

    def __init__(self):
        self.kwargs = dict(a=1)

    def update(self, **kwargs):
        return _Update(instance=self)(**kwargs)

    def _update(self, **kwargs):
        self.kwargs = kwargs

If we don't go down that route, we should try to align .set and .update more (i.e. same signatures, work on both classes and instances).

What do you think about that @philippjfr ?

I'll play around with it.

Made the changes you requested, ready to review.


Add Azure AI Studio API or ChatGPT OpenAI selection + API calls implementation

I prepared simple but useful feature: you can choose, what kind of API you would like to use to ask LLM ;-)

https://github.com/varunshenoy/GraphGPT/issues/32


feat(storage): link storage api version with remote

What kind of change does this PR introduce?
Bug fix, feature, docs update, ...
What is the current behavior?
Please link any relevant issues here.
What is the new behavior?
Feel free to include screenshots if it includes visual changes.
Additional context
Add any other context or screenshots.

Pull Request Test Coverage Report for Build<PHONE_NUMBER>

42 of 64 (65.63%)  changed or added relevant lines in 5 files are covered.
7 unchanged lines in 3 files lost coverage.
Overall coverage increased (+0.006%) to 56.753%

Changes Missing Coverage
Covered Lines
Changed/Added Lines
%

internal/link/link.go
13
15
86.67%

internal/utils/config.go
2
5
40.0%

internal/utils/tenant/storage.go
10
14
71.43%

internal/services/services.go
0
6
0.0%

internal/utils/tenant/client.go
17
24
70.83%

Files with Coverage Reduction
New Missed Lines
%

internal/services/services.go
1
14.93%

internal/utils/tenant/client.go
1
75.0%

internal/gen/keys/keys.go
5
12.31%

Totals

Change from base Build<PHONE_NUMBER>:
0.006%

Covered Lines:
5139

Relevant Lines:
9055

💛  - Coveralls


feat(tutorial): complete step 1

Closes #
{{short description}}
Changelog
New

{{new thing}}

Changed

{{change thing}}

Removed

{{removed thing}}

👍 Looks good - 🎉 You are one step closer to completion of the Carbon React tutorial and earning the digital credential.


Work Package wp-cj.csv

I would like to work on this please!

I would like to work on this please!

wp-cj-results.csv

Results of Phase
wp-cj-results.csv
2

I completed this work package.

I would like to work on this please!

Results of Phase 1
wp-cj-results.csv

Results of Phase
wp-cj-results.csv
2

I would like to work on this please!

Results of Phase 2
wp-cj-results.csv

Results of Phase 2 wp-cj-results.csv

@samuel-barrett Please fix the typo in the column name for "paper_doi" and upload the CSV file again. Thanks.

I would like to work on this please!

Results of Phase 2
wp-cj-results.csv

Results from phase 1
wp-cj-results.csv
:

Results from phase 1:
wp-cj-results.csv


riteraft-py code review

I fixed lots of code from riteraft.
For example, I don't feel Raft is the proper name, so I named it RaftClusterFacade, but I'm uncertain this is the right naming.
And I think the type names defined in message.py are also confusing.
And also I think it would be great to write test scenarios before writing test codes.
https://github.com/lablup/riteraft-py/projects?query=is%3Aopen

It would be great to keep the type names in riteraft-py as similar as possible to riteraft and incorporate code reviews into the forked project.


unexpected end of JSON input

Hey,
go: 1.17.2
caddy: 2.4.5
$ xcaddy build v2.4.5 --with github.com/abiosoft/caddy-json-schema
$ ./caddy json-schema -no-cache
json-schema discarding cache for root config.
json-schema fetching https://caddyserver.com/api/docs/config/ ...
json-schema
json-schema discarding cache for apps/exec.
json-schema fetching https://caddyserver.com/api/docs/config/apps/exec ...
json-schema
json-schema discarding cache for apps/supervisor.
json-schema fetching https://caddyserver.com/api/docs/config/apps/supervisor ...
json-schema
json-schema discarding cache for apps/http.
json-schema fetching https://caddyserver.com/api/docs/config/apps/http ...
json-schema
json-schema discarding cache for apps/pki.
json-schema fetching https://caddyserver.com/api/docs/config/apps/pki ...
json-schema
json-schema discarding cache for apps/tls.
json-schema fetching https://caddyserver.com/api/docs/config/apps/tls ...
json-schema
json-schema discarding cache for apps/auth.
json-schema fetching https://caddyserver.com/api/docs/config/apps/auth ...
json-schema
json-schema: unexpected end of JSON input

The url https://caddyserver.com/api/docs/config/apps/auth response is empty with 502 error code.
Might not be a good idea to use the web server from caddy itself, it's an external services which can always change.
Like in my case it looks like auth is gone?

I can reproduce this, maybe should be reported to caddy project.
Menawhile as a workarround editing the cached json files and remove relevant configs can make it work again

Just in case anyone else is coming across this, I found that the following file was sufficient:
{"status_code":200}

These were in <caddy/json_schema/<doc name>/docs.json. At time of writing, the docs that required this were:

apps/auth
apps/http.handlers.prometheus
apps/http.handlers.request_debug
apps/http.handlers.image_filter

This should now be fixed, see https://github.com/caddyserver/website/issues/206. Could any of you give this a try again?

@francislavoie just hit this, from a different endpoint though. I see it from apps/http.handlers.prometheus:
json-schema cached docs not found for apps/http.handlers.prometheus.
json-schema fetching https://caddyserver.com/api/docs/config/apps/http.handlers.prometheus ...
json-schema
json-schema: unexpected end of JSON input

I don't think that plugin was registered on the Caddy website, so there's no docs for it. But either way, metrics are built into Caddy now, so that plugin shouldn't be necessary :thinking:

Ok I get it, there's a race condition to see which one breaks first. So of the ones sharnoff listed above endpoints for the following 3 were returning 502 and stopping json schema generation:

apps/http.handlers.prometheus
apps/http.handlers.request_debug
apps/http.handlers.image_filter

After manually putting json files into the cache for those 3 generation completed susccessfully. I did not have to touch anything for apps/auth so it looks like that one is fixed.
I'm not really sure why its pulling in prometheus if it shouldn't @francislavoie . I don't use prometheus so I'm not building in an extension around it with xcaddy. Perhaps its on a list and needs to be removed? All 3 of those modules say "non-standard" in the docs so seems like they're being incorrectly included.

The "non-standard" label means it's not included with vanilla Caddy, i.e. a third party plugin.
I think @mholt will need to take a look at why those are causing issues. I don't have direct access to the website backend.

That's weird. Looks like something is wrong with the site for those docs (JS errors) -- sigh, sorry about that. I will have to look into that as soon as I have a chance. (And I've noticed some docs where the yellow box explaining where the non-standard module's repo can be found is missing... hmm.)

Ok, I think it's just that the auth plugin was moved/renamed to security: https://caddyserver.com/docs/modules/security
And that does seem to work fine.

Running into this when building docs for https://github.com/mholt/caddy-l4.
Dockerfile
RUN \
    apk update \
    && apk add $run_deps \
    && go install github.com/caddyserver/xcaddy/cmd/xcaddy@latest \
    \
    # https://caddyserver.com/docs/modules/layer4
    # https://caddyserver.com/docs/build
    && /root/go/bin/xcaddy build ${CADDY_VERSION} \
        --with github.com/abiosoft/caddy-json-schema \
        --with github.com/mholt/caddy-l4/layer4 \
    \
    && mv caddy /usr/local/bin

Build command:
 # caddy json-schema --vscode --output /out/caddy_schema.json

Output:
json-schema cached docs not found for root config.
json-schema fetching https://caddyserver.com/api/docs/config/ ...
json-schema
json-schema cached docs not found for apps/exec.
json-schema fetching https://caddyserver.com/api/docs/config/apps/exec ...
json-schema
json-schema cached docs not found for apps/supervisor.
json-schema fetching https://caddyserver.com/api/docs/config/apps/supervisor ...
json-schema
json-schema cached docs not found for apps/http.
json-schema fetching https://caddyserver.com/api/docs/config/apps/http ...
json-schema
json-schema cached docs not found for apps/pki.
json-schema fetching https://caddyserver.com/api/docs/config/apps/pki ...
json-schema
json-schema cached docs not found for apps/tls.
json-schema fetching https://caddyserver.com/api/docs/config/apps/tls ...
json-schema
json-schema cached docs not found for apps/security.
json-schema fetching https://caddyserver.com/api/docs/config/apps/security ...
json-schema
json-schema cached docs not found for apps/crowdsec.
json-schema fetching https://caddyserver.com/api/docs/config/apps/crowdsec ...
json-schema
json-schema cached docs not found for apps/dynamic_dns.
json-schema fetching https://caddyserver.com/api/docs/config/apps/dynamic_dns ...
json-schema
json-schema cached docs not found for apps/layer4.
json-schema fetching https://caddyserver.com/api/docs/config/apps/layer4 ...
json-schema
json-schema cached docs not found for apps/layer4.matchers.crowdsec.
json-schema fetching https://caddyserver.com/api/docs/config/apps/layer4.matchers.crowdsec ...
json-schema
json-schema cached docs not found for apps/caddy.logging.writers.stdout.
json-schema fetching https://caddyserver.com/api/docs/config/apps/caddy.logging.writers.stdout ...
json-schema
json-schema cached docs not found for apps/http.matchers.exec_noop.
json-schema fetching https://caddyserver.com/api/docs/config/apps/http.matchers.exec_noop ...
json-schema
json-schema cached docs not found for apps/http.matchers.execnopmatch.
json-schema fetching https://caddyserver.com/api/docs/config/apps/http.matchers.execnopmatch ...
json-schema
json-schema cached docs not found for apps/http.handlers.geofence.
json-schema fetching https://caddyserver.com/api/docs/config/apps/http.handlers.geofence ...
json-schema
json-schema cached docs not found for apps/dns.providers.lego_deprecated.
json-schema fetching https://caddyserver.com/api/docs/config/apps/dns.providers.lego_deprecated ...
json-schema
json-schema cached docs not found for apps/caddy.logging.encoders.filter.
json-schema fetching https://caddyserver.com/api/docs/config/apps/caddy.logging.encoders.filter ...
json-schema
json-schema cached docs not found for apps/http.handlers.request_debug.
json-schema fetching https://caddyserver.com/api/docs/config/apps/http.handlers.request_debug ...
json-schema
json-schema: unexpected end of JSON input

I'm not a Go or Caddy expert, so maybe I'm doing something wrong?

@AlexanderAllen Those paths look broken, starting with /api/docs/config/apps/layer4.matchers.crowdsec -- there is no app named layer4.matchers.crowdsec; the correct link should probably be https://caddyserver.com/api/docs/module/http.handlers.request_debug, but this is different than config-traversal docs, if that makes sense. I'm not sure what is generating those paths but it seems to be an error.
(That particular module does not appear to have docs btw. There's JSON response but the docs are null. Hmm.)

Hmm, there's probably something wrong with my Docker build. I'm also using
Alpine, and usually that's an "all bets are off" for most people when it
comes to compiling anything. Cheers for the response.
On Mon, Mar 28, 2022 at 12:04 AM Matt Holt @.***> wrote:

@AlexanderAllen https://github.com/AlexanderAllen Those paths look
broken, starting with /api/docs/config/apps/layer4.matchers.crowdsec --
there is no app named layer4.matchers.crowdsec; the correct link should
probably be
https://caddyserver.com/api/docs/module/http.handlers.request_debug, but
this is different than config-traversal docs, if that makes sense. I'm not
sure what is generating those paths but it seems to be an error.
(That particular module does not appear to have docs btw. There's JSON
response but the docs are null. Hmm.)
—
Reply to this email directly, view it on GitHub
https://github.com/abiosoft/caddy-json-schema/issues/7#issuecomment-1080156690,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/ADK6SRMW5X7EBDBHM2B3RF3VCEVVFANCNFSM5HWKW2OQ
.
You are receiving this because you were mentioned.Message ID:
@.***>

--
Richard Allen
Mobile:<PHONE_NUMBER>

We ship a caddy:builder image variant that you can use (see https://hub.docker.com/_/caddy) which is also based on Alpine. It's definitely not an issue with your build.
There's definitely a bug in caddy-json-schema that needs to be fixed, it's generating incorrect URLs for trying to fetch each module's docs.

I reproduced the issue:
docker run --rm -it caddy:builder sh
xcaddy build v2.4.6 --with github.com/abiosoft/caddy-json-schema
./caddy json-schema

Error is json-schema: unexpected end of JSON input

Was going to note that I was still hitting this on 2.5.0 but I see now that there's a PR to fix it which is great. If anyone is keeping track of which plugins have this doc issue, I hit it for all 3 of the ones I mentioned before plus one new one. Here's the current list of the plugins I had to manually fix docs.json for:

apps/http.handlers.prometheus
apps/http.handlers.request_debug
apps/http.handlers.image_filter
apps/http.handlers.olaf

Thanks @mdegat01 -- quite likely a bug in the docs system I wrote. I'm not sure what those have in common yet, though, so I'll need to find some time to take a look and see what's going on.


Leetcode Question Number 1588

Leetcode Question Number 1588 solution needs to be added in the repo .
The link for the question is this.
Accepted Languages C++ / JAVA .
You Only need to add the  class Solution in the file.
Make Sure you have read the contributions guidelines before creating an PR.

Assign me


Adds link to medium story (flask + microk8s)

Add links for medium stories, in which we execute a simple flask application as a microk8s service.

Thank you @giorgos-apo


Can Android emulator easily be configured to talk to mobile services .NET backend running on localhost

One of the value propositions for the .NET runtime is local development. We would like to determine, if possible, how we can help customers perform local testing from Android emulator.

This is doable through web apps easily now.


remove unparsable geojson

some geojson is invalid, such as the one in https://www.tbrc.org/xmldoc?rid=G2139 (which ends abruptly), we should make sure that we only migrate valid one... @xristy would you have any idea why we have invalid (cut abruptly after a certain number of characters would be my guess) json in the xml? is there any chance we would have the complete version?

fix in https://github.com/buda-base/xmltoldmigration/commit/71c4bab3d3701762c8c0190c0542da0b4300d543


Expand stack to 16k

Since we started using the IDT struct specified on the x86_64 crate, we
need more space for all the 256 entries and not only for the first 16
(or 32?) entries as on the old IDT type.
Additional information

This fix #294
This change must be included on the new planned blog post #292

Thanks a lot!


[BUG] v2 volume may enter ERROR state after deleting an instance manager containing a replica

Describe the bug
After deleting an instance manager containing a replica of a v2 volume on a non-attached node, the v2 volume may enter ERROR state.

The ctrlr_loss_timeout_sec setting applies to the base bdev's NVMe controller and defines the timeout duration (30 seconds) for SPDK to attempt reconnecting to the controller after losing connection.
When an instance manager containing a replica is deleted, SPDK starts to reconnect to the base bdev's controller. If the connection cannot be reestablished within the ctrlr_loss_timeout_sec period, the base bdev is removed from the RAID bdev. Since the ctrl-loss-tmo for the NVMe-oF initiator connecting to the RAID target is also set to 30 seconds, there is a risk of a race condition: the initiator may prematurely conclude that the target has failed.
To Reproduce

Create a 3-replica v2 volume
Delete a replica of a v2 volume on a non-attached node
Wait for the finish of the replica rebuilding
Repeat 2 and 3. The v2 volume may enter an ERROR state

Expected behavior
The v2 volume shouldn't enter ERROR state
Support bundle for troubleshooting

Environment

Longhorn version:
Impacted volume (PV):
Installation method (e.g. Rancher Catalog App/Helm/Kubectl):
Kubernetes distro (e.g. RKE/K3s/EKS/OpenShift) and version:

Number of control plane nodes in the cluster:
Number of worker nodes in the cluster:

Node config

OS type and version:
Kernel version:
CPU per node:
Memory per node:
Disk type (e.g. SSD/NVMe/HDD):
Network bandwidth between the nodes (Gbps):

Underlying Infrastructure (e.g. on AWS/GCE, EKS/GKE, VMWare/KVM, Baremetal):
Number of Longhorn volumes in the cluster:

Additional context

Workaround and Mitigation

Verified on master-head 20241206

longhorn master-head https://github.com/longhorn/longhorn/commit/6cc47ec5e942f33b10f644a5eaf0970b650e27a7
longhorn-instance-manager master-head https://github.com/longhorn/longhorn-instance-manager/commit/88b6f24e17a8f0618c597b2337b1a498ca0de90f

The test steps
https://github.com/longhorn/longhorn/issues/9874#issuecomment-2506007100

Create a 3-replica v2 volume and attach it to node-1.
Delete a replica of the v2 volume located on a non-attached node (node-2).
Wait for the replica rebuild to complete.
Verify that the v2 volume's robustness returns to Healthy.
Repeat steps 2 and 4, but delete a replica on another non-attached node (node-3).
Continue repeating steps 2–5 for 50 iterations using delete_replica.sh.

delete_replica.sh
#!/bin/bash

NAMESPACE="longhorn-system"
TARGET_NODES=("node-2" "node-3")
DELETE_COUNT=50

get_replicas() {
    kubectl -n $NAMESPACE get replica -o jsonpath='{range .items[*]}{.metadata.name}{"\t"}{.spec.nodeID}{"\n"}{end}'
}

check_replica_status() {
    local node=$1
    kubectl -n $NAMESPACE get replica | grep "$node" | awk '{print $1 "\t" $3}'
}

get_volume_name() {
    local replica_name=$1
    kubectl -n $NAMESPACE get replica "$replica_name" -o jsonpath='{.spec.volumeName}'
}

check_volume_health() {
    local volume_name=$1
    kubectl -n $NAMESPACE get volume "$volume_name" -o jsonpath='{.status.robustness}'
}

for ((i=1; i<=DELETE_COUNT; i++)); do
  for NODE in "${TARGET_NODES[@]}"; do
    echo "Processing node: $NODE (Iteration: $i)"

    REPLICA=$(get_replicas | grep "$NODE" | cut -f1)

    if [[ -n "$REPLICA" ]]; then
      VOLUME_NAME=$(get_volume_name "$REPLICA")
      echo "Found replica $REPLICA for volume: $VOLUME_NAME"

      echo "Deleting replica: $REPLICA on node: $NODE"
      kubectl -n $NAMESPACE delete replica $REPLICA

      echo "Waiting for new replica to be created and running..."
      while true; do
        echo "Current replicas status:"
        kubectl -n $NAMESPACE get replica

        REPLICA_STATUS=$(check_replica_status "$NODE")
        if [[ -n "$REPLICA_STATUS" ]]; then
          NAME=$(echo "$REPLICA_STATUS" | cut -f1)
          STATUS=$(echo "$REPLICA_STATUS" | cut -f2)

          if [[ "$STATUS" == "running" ]]; then
            echo "New replica $NAME on node $NODE is now running."
            break
          else
            echo "New replica $NAME on node $NODE is in $STATUS state."
          fi
        else
          echo "No replica found on node $NODE yet."
        fi

        sleep 5
      done

      echo "Checking volume health status..."
      while true; do
        HEALTH_STATUS=$(check_volume_health "$VOLUME_NAME")
        echo "Current volume $VOLUME_NAME health status: $HEALTH_STATUS"

        if [[ "$HEALTH_STATUS" == "healthy" ]]; then
          echo "Volume is healthy, proceeding to next replica..."
          break
        else
          echo "Volume is not healthy yet, waiting..."
          sleep 5
        fi
      done

    else
      echo "No replica found on node: $NODE"
    fi
    sleep 5
  done
done

Result Passed
After executing the script, the v2 volume won't enter an ERROR state


Add support and tests for typedefs. Refs #5

@Constellation anything else needed on this PR?

Looks good to me. Sorry for my late reply.


Add local host and forward address for container domain

Modify edge-proxy launch script to add new forwarding address for containers domain
Add containers.local to the list of known hosts

Need to update pe-utils after version 2.0.5 is out.

Need to update pe-utils after version 2.0.5 is out.
@ashishwigwag Is this PR dependent on the upgrade, or is this change fine on its own?

@ashishwigwag pe-utils v2.0.5 is already available. Please pull that in as well.
@costanic Yes, this PR is dependent on pe-utils v2.0.5.

@ashishwigwag pe-utils v2.0.5 is already available. Please pull that in as well.
@costanic Yes, this PR is dependent on pe-utils v2.0.5.

ok, let's add that to this PR.

@ashishwigwag pe-utils v2.0.5 is already available. Please pull that in as well.
@costanic Yes, this PR is dependent on pe-utils v2.0.5.

ok, let's add that to this PR.

Updated pe-utils source commit to latest.

Rebased on current dev branch.
@ashishwigwag please make sure this PR is still needed and still looks good after the rebase.

Rebased on current dev branch.
@ashishwigwag please make sure this PR is still needed and still looks good after the rebase.

Yes, still needed.
@ygoyal18 Can we merge this?

Since pe-utils was upgraded to 2.0.7, this seems ready to go.


FEAT: Added support for sub-commands https://github.com/DiceDB/dice/i…

https://github.com/DiceDB/dice/issues/355

@JyotinderSingh  please review


Standardize Error Handling

Right now both the !docs and !wiki commands may encounter errors during their execution. Since that may happen as well with future additions, we should find a standardized way of dealing with exceptions during program executions in order to stay consistent.

An adequate and consistent way is provided in #58.


in IOS safari sound keep in silence after visibility change

A bug in the API:

Phaser version(s): 2.11.1
What should happen: sound should play
What happens instead: can't play any sound, the audio context's state is running

maybe unsetMute not work correctly when visibility change

What causes the visibility change?

What causes the visibility change?

press the home button, and then switch back to safari

Hi @Z2Y I'm having a similar issue with Phaser 2.9.4, do you remember how you fixed it?

@davcri what does game.debug.sound(…) show?

#667


onPress callback does not pass event

When the callback for the onPress action is called, it does not pass the event that initiated the press.

The SyntheticEvent is pooled. This means that the SyntheticEvent object will be reused and all properties will be nullified after the event callback has been invoked.

Because of this event in onPress callback is useless.


Cache grype DB initialization across scans

We were spending most of our time hashing the grype DB instead of scanning things. This introduces a scan.Scanner to hold the cached DB so we spend (a lot) more time scanning.
Fixes https://github.com/wolfi-dev/wolfictl/issues/520

Compare to alternative: https://github.com/wolfi-dev/wolfictl/pull/521#issuecomment-1854549853


Can't paste email in registration form

https://ozarksecc.smarthub.coop/Login.html#registration:
The email fields seem blocked with the plugin, using brave.

@Ashtonian, sorry to hear you're having trouble. I'm not able to reproduce the problem you are experiencing, that said I am using Chrome on macOS instead of brave on whichever operating system you are using.
From what I can see, they are not blocking "paste" events at all, so this extension will have no affect on that site one way or the other. It's possible they are blocking the keyboard shortcut associated with paste for Windows/Linux computers (control + v), I couldn't find any code that indicated they were but I'm not able to test that as the keyboard shortcut on Mac is different (command + v). If they are blocking the keyboard shortcut then you should still be able to paste via the context menu (right click) and from Paste in the Edit menu.

My apologies... Immediately following me closing this issue I noticed the subject of this issue mentioned "registration" and I realized I was testing the login page instead.
So on their registration page, they are indeed blocking "paste" events in the email field, but this extension correctly circumvents that once activated. At least it does on Chrome, again I'm not a Brave user so I can't test that out to verify it works properly on other browsers. Please check that you have activated the extension for this site, as that's how this extension is intended to be used: https://github.com/jswanner/DontFuckWithPaste#usage

Thanks for the response, after adding the site to the white list it does indeed work.
what are your thoughts on starting a builtin defaults site list ?

The previous major version of this extension had a default list of sites it was configured to run on and those not to run on, and most of the issues created at that time revolved around people wanting to change those defaults. My main motivation for the current major version was to make activating the extension for specific sites as easy as possible, so people could customize the extension to meet their browsing trends, and to get away from the extension having defaults.
You can have an inferior browsing experience by having this extension active on sites that do helpful things with paste events (like GitHub turning a file paste into a file upload). So, having this extension active by default on sites that are currently bad actors can lead to problems down the road if those sites begin doing good things with paste. I also really don't want to try maintaining a repository of all known bad actors around the world when it comes to copy/paste.