AWS  amplify redirect issue with apple-app-site

Before opening, please confirm:

[X] I have checked to see if my question is addressed in the FAQ.
[X] I have searched for duplicate or closed issues.
[X] I have read the guide for submitting bug reports.
[X] I have done my best to include a minimal, self-contained set of instructions for consistently reproducing the issue.

App Id
No response
Region
us-east-1
Amplify Console feature
No response
Describe the bug
I'm  using aws amplify to host my front end but im getting a issue putting the universal link for ios, i put the apple-app-site-association in my root folder and create a rule in redirect part to point to that file but without extension it just get 404 but if i put and ext .json it works, the problem is that apple required that the file does't have extensions.
this is muy current config and my file is located in /root/apple-app-site-association
{
"source": "/apple-app-site-association",
"target": "/apple-app-site-association",
"status": "200",
"condition": null
}
]
Expected behavior
That aws allow me put files without extension
Reproduction steps
upload a file without extension
redirect with a rule to that file
see if it work
Build Settings
No response
Additional information
No response

Hi, Can you add this custom rule:
[
    {
        "source": "/.well-known/apple-app-site-association",
        "target": "/apple-app-site-association",
        "status": "200",
        "condition": null
    }
]

Victor, thanks for the reply,
But in that case do i have to create a sub directory on mi root? like root/.well-known/apple-app.site-association?

Victor, thanks for the reply,
But in that case do i have to create a sub directory on mi root? like root/.well-known/apple-app.site-association?

No, you can keep apple-app-site-association in root folder.

not, it seems that doesn't work it bring me the 404
these are my rules
[
{
"source": "/.well-known/apple-app-site-association",
"target": "/apple-app-site-association",
"status": "200",
"condition": null
},
{
"source": "/<*>",
"target": "/index.html",
"status": "404-200",
"condition": null
},
{
"source": "</^[^.]+$|\.(?!(css|gif|ico|jpg|js|png|txt|svg|woff|ttf|map|json)$)([^.]+$)/>",
"target": "/index.html",
"status": "200",
"condition": null
}
]

not, it seems that doesn't work it bring me the 404
these are my rules
[
{
"source": "/.well-known/apple-app-site-association",
"target": "/apple-app-site-association",
"status": "200",
"condition": null
},
{
"source": "/<*>",
"target": "/index.html",
"status": "404-200",
"condition": null
},
{
"source": "</^[^.]+$|.(?!(css|gif|ico|jpg|js|png|txt|svg|woff|ttf|map|json)$)([^.]+$)/>",
"target": "/index.html",
"status": "200",
"condition": null
}
]

Sorry for the confusion, is the root folder a folder in your Repo?
Could you put apple-app-site-association in root of your repo as target is /apple-app-site-association ?
Ref: https://github.com/aws-amplify/amplify-console/issues/1209

Hi,
I have tried this approach but get error. My rule is configured similar to previous comment...
[
{
"source": "/.well-known/apple-app-site-association",
"target": "/apple-app-site-association",
"status": "200",
"condition": null
}
]
However when I go to 'Add a new domain' on stripe settings --> payment methods, I get error:
We were unable to verify that you control the domain .com. When we tried to request https://.com/.well-known/apple-developer-merchantid-domain-association, it redirected to /.well-known/apple-developer-merchantid-domain-association/. The verification file must be served as a 200 at https://.com/.well-known/apple-developer-merchantid-domain-association to register .com. Did you mean to register /.well-known/apple-developer-merchantid-domain-association/?
Appreciate any help here.

@r0nanoc getting the same error. hoping someone can help with this.

Solution is that the file itself NEEDS a file extension, and the redirect does not:
[
    {
        "source": "/.well-known/apple-app-site-association",
        "target": "/.well-known/apple-app-site-association.json",
        "status": "200",
        "condition": null
    }
]

Then amplify will be able to find it correctly.

Note, @tamagokun 's answer worked for me, but just an FYI that if I put this URL in my browser, it results in the typical Amplify/CloudFront AccessDenied XML error. But, if I curl the URL, it delivers me the file just fine.

Thanks for providing the solution to this issue @tamagokun ! I'm going to close this issue, and I will open a new one in the docs repository so we can add this to our docs.


Update electron-builder, pt.2

This task is automatically imported from the old Task Issue Board and it was originally created by Michał Urbańczyk.
Original issue is here.

As soon as https://github.com/electron-userland/electron-builder/issues/6865 is addressed.
Blockers:
https://github.com/electron-userland/electron-builder/issues/6865 blocked

Done in #9884


Bulq-1500 UPS signature tracking endpoint

@kwoodard22 this included #45 right?

@nevern02 can you look at this one instead actually

@jec006 Yes, it includes https://github.com/optoro/active_shipping/pull/45. I moved the delivery info to the tracking response & included specs.

Looks as good as anything in this gem can look.


Suggested changes for occurrenceRemarks

I inspected the content of the current field occurrenceRemarks, a compilation of the information contained in typeActid, typdeKid and typeMid. Some suggestions for change:

occurrenceRemarks
decision
source
assign to new Darwin Core term

recently hatched young
remove
typeActID
lifeStage leave in occurrenceRemarks

unknown
remove
typeActID
?

indigenous
remove
typeActID
establishmentMeans

present
remove
typeActID
occurrenceStatus

occupied nest with eggs
remove
typeActID
lifeStage leave in occurrenceRemarks

adventive
remove
typeActID
establishmentMeans (=introduced), leave in occurrenceRemarks, but write as accidentally introduced

micr_examined_mat_present
remove
typeActID
? identificationRemarks( = microscopic examination)

catch_by_cat
remove
typeActID
leave in occurrenceRemarks, but write as catch by cat

washed_ashore
remove
typeActID
leave in occurrenceRemarks, but write as washed ashore

with broodpatch
remove
typeActID
reproductiveStatus leave in occurrenceRemarks, but write as with brood patch

microscopic_examined
remove
typeActID
samplingProtocol identificationRemarks( = microscopic examination)

seen while diving
remove
typeMid
samplingProtocol

Reviewed table to have it in line with Natuurpunt datasets. Note that recently hatched young and occupied nest with eggs are not lifeStage, but a remark about the observed species (e.g. very often these remarks are about the parents)

Done.


Fix Visual Studio 2017 Compilation

 Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.You have signed the CLA already but the status is still pending? Let us recheck it.


TIMEOUT: //test/core/tsi:ssl_transport_security_test@poller=poll[k8-fastbuild]

https://source.cloud.google.com/results/invocations/d458b2aa-ec74-4055-8048-2698278cdf65/targets/%2F%2Ftest%2Fcore%2Ftsi:ssl_transport_security_test@poller%3Dpoll/log

It usually has a couples of failures a day but there seems to be none today so I guess this is fixed.


Convergence halted due to matrix inversion problems

I would like to use lifelines package cox-regression analysis on TCGA data ( a very high dimensional dataset ~1500 features), and I keep getting the "Convergence halted due to matrix inversion problems". I was wondering if this package is suitable for such a high dimensional dataset?

Hi @rojinsafavi,

I was wondering if this package is suitable for such a high dimensional dataset

Maybe. 1.5k features is untested by myself, and internally lifelines needs to compute a 1.5k x 1.5k variance matrix, which can be a lot for your computer's memory.
How many observations do you have? Does the problem persist if you increase the penalizer term?

(Like I said, I've never tested a dataset with that many features. If you are able to share it with my privately, that would be appreciated to help extended lifelines to support high dimensional data better)

@rojinsafavi I might share my own experiences working with such a high dimensional dataset. The error that you receive is very useful. To briefly summarize my own experience (and I directly quote some of the helpful comments provided by @CamDavidsonPilon:
The reason my gradients were exploding or where convergence was never achieved was due to high collinearity in the dataset.  A common cause of this error is dummying categorical variables but not dropping a column, or some hierarchical structure in your dataset.
I verified this by "finding the relationship by adding a penalized term to the model,  or using the variance inflation factor (VIF) to find redundant variables."
It will take a lot more more work, but you can exhaustively permute on the matrix's columns in order to ensure rank and ensure that each matrix indeed has an inverse. In addition, I would assume that one would also exercise judgement based on domain knowledge.
I also implemented a similar heuristic as described in the paper here. I hope this may be of some use.


nested css

Hi devs
how we can write nested css like below:
tw.div`
flex
& h2 {
text-red-500
}
`
thank you for this awesome work Mathias

Hi @dev-aly3n,
You can extend a Styled Component has shown on the the README.
Extends Styled Component
Extend styled components
const StyledComponentWithCustomCss = styled.div`
    filter: blur(1px);
`

const  = tw(StyledComponentWithCustomCss)`
   flex
`

Css rule filter is not supported by default on TailwindCSS


Refactoring with xarray

This pull request document the development of the xarray-based enhancement of ECmean4. The most of the discussion has been carried out in #40, where both global mean and performance indices have been computed with EC-Earth4 and a set of CMIP6 data. The new branch remove the dependency on CDO and exploit the lazy evaluation of xarray and dask, with impressive benefits in terms of performances. The original code has been preserved and xr_* files have been introduced.
Even if now we are ready to discuss a pull request a few things are still missing.

[x] Harmonization of the area_cell() function, so far too much dependent on the data structure.
[x] Double check interpolation methods, which show too large difference compared to CDO-based ones
[x] Check masking for performance indices
[x] Update documentation
[x] Create alternative pychecks for the xarray version

Update of the _area_cell() function to be more general. There are stil some mismatches for area integrals

I introduced the spherical triangles as in CDO to compute the area, this is based on L'Huilier theorem (!!). The calculation is most exact possible so that the global surface of the Earth is the same for every grid tested. Unfortunately I still need to find a vectorized solution for the computation of the cross product necessary to the estimate of the triangles (see _vector_spherical_triangle(p1, p2, p3), the loops on a,b,c). This makes the code terribly slow (i.e. up to 20 seconds with N128 grid) so that this option is so far disabled.
If this can be solved, this can be our default since provides exactly the same numbers for global averaging of CDO.

'_vector_spherical_triangle(p1, p2, p3)' has been vectorized, so that now it is fast as the other options
I tested the compliance of this method against CDO gridarea command for a few datasets. Results are in m2, and show massive agreement. This sub-issue can be considered so far closed.

Last two commits revisited the tools which handle the masks and fixes their application in the performance indices.
Most relevant differences with original CDO version are now lying only in performance indices (there is some evident mismatch on values obtained) but this is likely due to the interpolation approach (xESMF is used here).

Devel/xarray has its own - sketched - documentation, which is so far a mix of the CDO and Xarray version.

Documentation has been integrated, cdo code has been moved in a subfolder, and a first test for cmip6 data has been introduced for the new xarray version. Please notice that this required a total change of the workflows which are now using conda, both for github and readthedocs.

Test should be expanded to include also ECE4 data. Test data is however incompatible with the current code, since it has been processede with CDO which has changed its boundaries format. Some rearrangement is still required also for the older CDO code, for which the associated tests has been disabled

Fixed the tests and some grid handling so that they can work with all data. Renamed the older CDO code, and corrected the pardes issues so that closes also #44. Lint with autopep8.
Documentation and tests are in place, I am waiting for a check by @jhardenberg and then I can assume we can merge!

Even if I should have opened a different pull requested, I added here the support for GLOBO data. Very preliminary but it works.

Checks are passed also, ready to merge

I finally come to test this, sorry for the long delay. I notice that in order to use xesmf you have now to use a conda environment. This is practical, but on Atos it basically disables other modules.... is this a problem?

There was a "deptht" in ecmean.py now changed to "depth".
Line 140 of ecmean.py: vars_avail = [i for i in xfield.data_vars] could this not be simply vars_avail = xfield.data_vars. ?

Thanks for the correction. Yes, the L140 you mention can probably be corrected as you say (need to only to check that xfield.data_vars return a list. Anything else to be checked or we can merge?

@jhardenberg can I assume this can be merged?

I would indeed proceed and merge!


hao to Using baresip as a library in vs2015?

i'm want to use it on qt  but i don't hao to use on vs2015 ?   Do you compile a .lib first?

open mk/win32/baresip.vcxproj in VS2015
build the project
look at the API in include/baresip.h
read this https://github.com/alfredh/baresip/wiki/Using-baresip-as-a-library
create your application

please use the mailing-list for questions:
http://lists.creytiv.com/mailman/listinfo/re-devel


⚠ Faculté génie website (prod) has degraded performance

In c331d02, Faculté génie website (prod) (https://www.usherbrooke.ca/genie/) experienced degraded performance:

HTTP code: 200
Response time: 1098 ms

Resolved: Faculté génie website (prod) performance has improved in eeb61af.


Diladele Web Filtering Proxy 1.5

[ X] Have you signed the Contributor License Agreement?
[ X] Have you checked that there aren't other open pull requests for the same manifest update/change?

[X] Does your manifest conform to the 1.0 schema?

Note: <path> is the name of the directory containing the manifest you're submitting.

Microsoft Reviewers: Open in CodeFlow

The verifier bot failed the changes because these do not correspond to manifest. Shall I revert them? The X.X.X.X version indication you requested seems to be incorrect. It needs to be X.X.X (three digits). Are you sure your requested changes are correct?

Shall I revert them?

No because you need to update the version folder from 1.5 to <IP_ADDRESS> to pass pipelines.

The X.X.X.X version indication you requested seems to be incorrect. It needs to be X.X.X (three digits).

Windows Package Manager requires that you use the PackageName, Publisher & PackageVersion directly from the Control Panel for application matching.
If the application's version number is incorrect, please recompile your application and update the hash in the package.

Thanks, I will close this pull request and update the version folder too. I will then open another pull request.

We would like to keep the <IP_ADDRESS> that is present in the MSI and control panel as correct product version. If I change the winget yaml files to <IP_ADDRESS> instead of 1.5.0 as it is now - the automated manifest checking fails. What shall I specify in the yaml files to let it succeed?
I though the three digit X.X.X scheme was required by winget manifest (which is strange because MSI is based on normal 4-digit scheme). Maybe we shall use another manifest version in yaml files? I am lost and cannot understand. Thanks.


Add ability to customize json serializer

Description
Refactor ObjectSerializer class to add ability set custom object mapper.
Refactor DaprStateAsyncprovider class to use custom serializers based on ObjectSerializer class as Json serializer.
Add unit tests.
Issue reference
#503
Checklist
Please make sure you've completed the relevant tasks for this PR, out of the following list:

[x] Code compiles correctly
[x] Created/updated tests
[ ] Extended the documentation

Please, focus on fixing the issue where a custom JSON serializer becomes Base64 encoded. Making DefaultObjectSerializer is a controversial change since it is not supposed to be used outside examples or getting started with Dapr.

Please, focus on fixing the issue where a custom JSON serializer becomes Base64 encoded. Making DefaultObjectSerializer is a controversial change since it is not supposed to be used outside examples or getting started with Dapr.

Ok. I will revert changes with ObjectSerializer and focused on the issue. Thank you for feedback.


Allow using UrlConstraints with unions of MultiHostUrl.

Initial Checks

[X] I have searched Google & GitHub for similar requests and couldn't find anything
[X] I have read and followed the docs and still think this feature is missing

Description
Currently the following throws an error:
from typing import Annotated

from pydantic import (
    BaseModel,
    UrlConstraints,
    PostgresDsn,
    MySQLDsn
)

class MyModel(BaseModel):
    foo: Annotated[MySQLDsn | PostgresDsn, UrlConstraints(max_length=80)]

However, separating it into Annotated[MySQLDsn, UrlConstraints(...)] | Annotated[PostgresDsn, ...] suceeds. It would be nice not to have to repeat the UrlConstraints here.

Exception

Traceback (most recent call last):
  File "/home/jasongrace2282/repos/test/pydan.py", line 11, in <module>
    class MyModel(BaseModel):
  File "/home/jasongrace2282/repos/test/.venv/lib/python3.12/site-packages/pydantic/_internal/_model_construction.py", line 226, in __new__
    complete_model_class(
  File "/home/jasongrace2282/repos/test/.venv/lib/python3.12/site-packages/pydantic/_internal/_model_construction.py", line 658, in complete_model_class
    schema = cls.__get_pydantic_core_schema__(cls, handler)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/jasongrace2282/repos/test/.venv/lib/python3.12/site-packages/pydantic/main.py", line 702, in __get_pydantic_core_schema__
    return handler(source)
           ^^^^^^^^^^^^^^^
  File "/home/jasongrace2282/repos/test/.venv/lib/python3.12/site-packages/pydantic/_internal/_schema_generation_shared.py", line 84, in __call__
    schema = self._handler(source_type)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/jasongrace2282/repos/test/.venv/lib/python3.12/site-packages/pydantic/_internal/_generate_schema.py", line 612, in generate_schema
    schema = self._generate_schema_inner(obj)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/jasongrace2282/repos/test/.venv/lib/python3.12/site-packages/pydantic/_internal/_generate_schema.py", line 881, in _generate_schema_inner
    return self._model_schema(obj)
           ^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/jasongrace2282/repos/test/.venv/lib/python3.12/site-packages/pydantic/_internal/_generate_schema.py", line 693, in _model_schema
    {k: self._generate_md_field_schema(k, v, decorators) for k, v in fields.items()},
        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/jasongrace2282/repos/test/.venv/lib/python3.12/site-packages/pydantic/_internal/_generate_schema.py", line 1073, in _generate_md_field_schema
    common_field = self._common_field_schema(name, field_info, decorators)
                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/jasongrace2282/repos/test/.venv/lib/python3.12/site-packages/pydantic/_internal/_generate_schema.py", line 1265, in _common_field_schema
    schema = self._apply_annotations(
             ^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/jasongrace2282/repos/test/.venv/lib/python3.12/site-packages/pydantic/_internal/_generate_schema.py", line 2062, in _apply_annotations
    schema = get_inner_schema(source_type)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/jasongrace2282/repos/test/.venv/lib/python3.12/site-packages/pydantic/_internal/_schema_generation_shared.py", line 84, in __call__
    schema = self._handler(source_type)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/jasongrace2282/repos/test/.venv/lib/python3.12/site-packages/pydantic/_internal/_generate_schema.py", line 2137, in new_handler
    schema = metadata_get_schema(source, get_inner_schema)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/jasongrace2282/repos/test/.venv/lib/python3.12/site-packages/pydantic/networks.py", line 109, in __get_pydantic_core_schema__
    raise PydanticUserError(
pydantic.errors.PydanticUserError: 'UrlConstraints' cannot annotate 'True'.

For further information visit https://errors.pydantic.dev/2.10/u/invalid-annotated-type

Affected Components

[ ] Compatibility between releases
[X] Data validation/parsing
[ ] Data serialization - .model_dump() and .model_dump_json()
[ ] JSON Schema
[X] Dataclasses
[ ] Model Config
[ ] Field Types - adding or changing a particular data type
[ ] Function validation decorator
[ ] Generic Models
[ ] Other Model behaviour - model_construct(), pickling, private attributes, ORM mode
[ ] Plugins and integration with other tools - mypy, FastAPI, python-devtools, Hypothesis, VS Code, PyCharm, etc.

Hi,
Thanks for your question! Indeed, constraint application to unions could be simplified from a user perspective.
I think this is one of those things where a bit more verbosity on the user side is actually worth having. I believe it might make our schema builds even slower to do constraint application analysis on union types.
Going to mark as not planned for now. If there's high demand here or further engagement from the community, we'd be happy to reconsider.
Thanks again for the clear example and explanation.


DOCS: spelling correction authorisation -> autorization

What this PR does / why we need it:
spelling correction authorisation -> autorization
Which issue (if any) this PR fixes:
Fixes # n/a
Any other useful info:

Ha, sorry dude, no chance. :gb:
https://en.wikipedia.org/wiki/American_and_British_English_spelling_differences

New one on me. I didn't know the Brits spelled it differently.
Better direct reference: https://www.merriam-webster.com/dictionary/authorisation


React should be a peer dependency

React is now a dependency and built along with the package and makes the lib heavy. React should be a peer dependency.
Take a look at styled-components for base version ideas.
Originally brought up in another PR by @sadarshannaiynar

@flexdinesh This alone doesn't solve the problem when you build it again takes react and other libraries.

@sadarshannaiynar what's the ideal approach for this?

@flexdinesh Hey, I have created a PR regarding this in the boilerplate package. Please take a look into that. I didn't want to modify here as this is published, once you are okay with the approach there we can proceed in implementing the same here.

@sadarshannaiynar Thanks for pointing this out again. I've now followed the same approach we used in the boilerplate to prevent bundling peer dependencies.
cb6f2cb691f76761511bc3bdfeb32ae3789a6ac4 address this issue. Closing for now.


Update README.md

Overview

PR Checklist

[ ] I did below actions if need

I read the Contributing Guide
I added documents and tests.

dfsfdssdfdssf

fsdfsfdss


Batch augmentor

Implements new batch augmentor that allows incorporation of SNR curriculum learning (currently just a dummy step that does nothing).

This looks pretty nice to me, other than the extraneous notebook. I lost track of the status of your SnrRescaler PR in ml4gw - is that more or less good to go, and would you prefer to get that merged in and use that here?

There will never not be an extraneous notebook from me.
The SnrRescaler PR is coupled with other changes that I'm now not really a huge fan of. I do think the SnrRescaler itself is a sufficiently general / useful tool, so maybe we merge that in by itself in a separate PR.
Still need some unit tests here too

Ah, I remember now, yeah. I think integrating the SnrRescaler in a separate PR makes sense, as long as there aren't any issues building it into RandomWaveformInjection.
Yeah, for sure.

I think the idea was the break up / remove RandomWaveformInjection. After this PR we won't actually use it in aframe (almost said BBHNet there ). The SnrRescaler factors out a large component of it (the .fit method). I'm not completely sure what else is worth generalizing. Maybe the sample_responses function that I have in the BatchAugmentor?

Isn't that what waveforms.py takes care of in your ml4gw PR? Are those the other changes that you're not a fan of?

Yeah exactly. I'm thinking it might be best to combine the Sampler and Projector.

That seems good to me, maybe with a flag to determine whether calling it returns the raw waveforms or the projected ones

I think I would rather keep them separate actually than introduce a flag. Ahh I keep going back and forth.


Fix rounded border drawing when border-radius is smaller than border-width

Summary
This PR fixes the drawing of the border rounded edges when the border-radius is small than the border-width. The current implementation capped the possible border-radius making it impossible to set smaller border-radii when using thicker borders. After inspection it was found that the rounded-rect calculation is incorrect.
Changelog
[Android] [Fixed] - Fix rounded border-drawing when border-radius is smaller than border-width
Test Plan
Faulty situation:
As you can see, when the border-radius becomes very low, the border is stuck at a minimum value. Only after setting the border-radius fully to 0 is it again rendered correctly.

After the fix:

@shergin This introduces a new bug when border width is smaller than radius.


hrvst time-entries / Content-Type header required to be application/json, got nil

The operational hrvst time-entries delete doesn't seem to work:
> hrvst time-entries delete -t 1234
Content-Type header required to be application/json, got nil

Thanks for reporting this as well as the other feature requests! I will release a new version tomorrow night with all these changes.

This has been fixed in v1.4.0.

@kgajera That's amazing - thank you so much!


Considerations for authentication and authorization technology

GitHub's not rendering the table properly - I think you just need to add a .md file extension.

I have put the matrix and the comments in the branch that Sam has started and I'll close this.


feat(tier4_perception_launch): sync perception launch to autoware_launch

Description
Resolve differences between tier4_perception_launch in autoware.universe and perception_launch in autoware_launch.

Related Links
https://github.com/tier4/autoware_launch/pull/534
Pre-review checklist for the PR author
The PR author must check the checkboxes below when creating the PR.

[x] I've confirmed the contribution guidelines.
[x] The PR follows the pull request guidelines.

In-review checklist for the PR reviewers
The PR reviewers must check the checkboxes below before approval.

[ ] The PR follows the pull request guidelines.

Post-review checklist for the PR author
The PR author must check the checkboxes below before merging.

[x] There are no open discussions or they are tracked via tickets.

After all checkboxes are checked, anyone who has write access can merge the PR.

@yukkysaito Could you approve this as this code owner?


doc: fix markdown errors in api-plugin doc

What this PR does:
Fix markdown errors in api_plugin/design

Which issue(s) this PR fixes:

Fixes #
Special notes for your reviewer:
Does this PR introduce a user-facing change?:

now it's ready for review:


[Telink] Amend mfg_tool readme

Improve doc for this generator
Provide an method to test generated factory partition

Signed-off-by: Damien Ji<EMAIL_ADDRESS>

@damien0x0023
Readme changes are ok for me.
Regarding generating file with all serial number I've another idea, to avoid open file each time when generating new set of data.
I'll take your patch for readme but change change code for mfg_tool.py on my way.


Remove the vindicia gateway

Vindicia is configured with a plaintext endpoint, which is bad.  However, this plaintext endpoint does not respond to TCP SYN packets, so I guess that's not so bad.  Well, except that it means that Vindicia is broken and does not work.
Given that Vindicia is broken, just remove it.
@ntalbott @girasquid @Shopify/payments

:+1:

:+1:

:fire:

I presume the plaintext endpoint we're talking about is this?
self.live_url = "http://soap.vindicia.com/soap.pl"
Which yes, is bad, and doesn't work, but it works with https.  Any chance we could add this gateway back using https instead?  Without going into detail, people actually do use this particular gateway :-D.

@newton10471 if someone wanted to submit a PR adding it back that has fully passing remote tests, and can provide us maintainers with credentials to run those tests, we'd be willing to add it back. Beware, though, that the recurring functionality is deprecated in AM, and we won't bring it back in.

@ntalbott ok sounds good thanks


Face Detection not working (not about the Ml Package)

Hi There. I tried Face Detection in my App but every time i try to run it , It produces an Error :
"DynamiteModule(13840): Local module descriptor class for com.google.android.gms.vision.dynamite.face not found. "
I searched  about that error and i found out that the reason for that Error is that the Storage is low. But then i checked my Storage and i had acually 1+Gb Free Storage. But still it's Showing me that Error. I know that the Error is not coming from the Camera ML Package . But can someone please help me about that , because i need it very strong.

android or iOS ?

Android

Hum did you add the correct dependency ? implementation 'com.google.firebase:firebase-ml-vision-face-model:17.0.2' Generally I try to check the doc https://firebase.google.com/docs/ml-kit/android/detect-faces and find some differences with my setup

No i didn't, but where can i add it

It's all in the doc :) usually app/build.gradle`

Okay it will try it now

Do i need to add that Line : implementation 'com.google.firebase:firebase-ml-vision:19.0.3'
in the Build.gradle

No that one come with ml package

Okay thanks

Thanks it works fine


Very minor typo: documentation says --no-build-mount, not --no-bind-mount

5 character change

 Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.You have signed the CLA already but the status is still pending? Let us recheck it.

Thank you!


GH844: Added working directory support for tools

Closes #844

Hi @patriksvensson, I'm your friendly neighborhood .NET Foundation Pull Request Bot (You can call me DNFBOT). Thanks for your contribution!
You've already signed the contribution license agreement. Thanks!
The agreement was validated by .NET Foundation and real humans are currently evaluating your PR.
TTYL, DNFBOT;

I would need @gep13 to review this since the change affects GitReleaseNotes. @devlead is of course welcome with opinions as well :smile:

@patriksvensson one small comment, but aside from that, this looks good to me.  If you want to rebase, I will get this merged in.

@gep13 Sure, will fix and rebase.

@gep13 Fixed and rebased.


Blog link not working

"This blog post discusses how to create multi-VM environments from your Azure Resource Manager templates." The link to the blog points to a page saying that the blog has been retired.

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

ID: 3f9e7a3d-7e06-e7d0-dcee-14d670a12325
Version Independent ID: 36de6a8d-c0f7-777b-ad95-3a3fdb315e78
Content: DevTest Labs concepts - Azure DevTest Labs
Content Source: articles/devtest-labs/devtest-lab-concepts.md
Service: devtest-lab
GitHub Login: @Juliako
Microsoft Alias: juliako

@cristimitulescu Thanks for bringing this to our attention. As the linked document calls out, we're currently working on migrating existing blog posts (excluding outage updates) to our DevTest Labs documentation itself. From now on, we'll be posting feature updates and informative blog posts on the DevTest Labs Azure blog and DevTest Labs Azure updates.
I have submitted a PR to fix the issue that's in review. Meanwhile, you can refer to this article that explains how to create multi-VM environments with Azure Resource Manager templates.


Failure after clone

Description of the problem / feature request:
I cloned the repositoy locally. Then executed bazel build //.... However, the build fails.
🐛 Bug Report: Expected Behavior
Successful build.
🐛 Bug Report: Actual Behavior
INFO: Invocation ID: 7dbc255e-7eeb-4176-a0c1-d5aff91a5ad1
INFO: Repository bazel_gazelle_go_repository_config instantiated at:
  /Users/brettw/Documents/dev/example-bazel-monorepo/WORKSPACE.bazel:40:21: in <toplevel>
  /private/var/tmp/_bazel_brettw/8b843efc2057a180abb205fca8381752/external/bazel_gazelle/deps.bzl:73:25: in gazelle_dependencies
Repository rule go_repository_config defined at:
  /private/var/tmp/_bazel_brettw/8b843efc2057a180abb205fca8381752/external/bazel_gazelle/internal/go_repository_config.bzl:57:39: in <toplevel>
ERROR: An error occurred during the fetch of repository 'bazel_gazelle_go_repository_config':
   Traceback (most recent call last):
	File "/private/var/tmp/_bazel_brettw/8b843efc2057a180abb205fca8381752/external/bazel_gazelle/internal/go_repository_config.bzl", line 25, column 31, in _go_repository_config_impl
		config_path = ctx.path(ctx.attr.config)
Error in path: Not a regular file: /Users/brettw/Documents/dev/example-bazel-monorepo/WORKSPACE
ERROR: Error fetching repository: Traceback (most recent call last):
	File "/private/var/tmp/_bazel_brettw/8b843efc2057a180abb205fca8381752/external/bazel_gazelle/internal/go_repository_config.bzl", line 25, column 31, in _go_repository_config_impl
		config_path = ctx.path(ctx.attr.config)
Error in path: Not a regular file: /Users/brettw/Documents/dev/example-bazel-monorepo/WORKSPACE
ERROR: error loading package '': Encountered error while reading extension file 'buildifier/def.bzl': no such package '@com_github_bazelbuild_buildtools//buildifier': no such package '@bazel_gazelle_go_repository_config//': Not a regular file: /Users/brettw/Documents/dev/example-bazel-monorepo/WORKSPACE
INFO: Elapsed time: 0.128s
INFO: 0 processes.
FAILED: Build did NOT complete successfully (1 packages loaded)
    currently loading: cli ... (6 packages)
    Fetching @py_deps; Restarting.
    Fetching @com_github_bazelbuild_buildtools; Restarting.
    Fetching @graknlabs_bazel_distribution; fetching

🐛 Bug Report: Steps to Reproduce the Problem

Clone the repo
Execute bazel build //...

🐛 Bug Report: Specifications

Platform: MacOS 11.6.6 (Intel)

not sure why this occurs but doing cp WORKSPACE.bazel WORKSPACE allowed me to work around


Add new page header - published

published: true

By default, a page is published.
Valid values are true or false.

Why don’t you just change the page file extension from lorem-ipsum.md another one. Example lorem-ipsum.draft ?

thanks for your input! will think about this.

How about separating drafts from published pages by putting then in a drafts folder?  Keeping the file extensions drafts/something.md would be kinder to editors supporting markdown styling

closed for now


Problem in downloading translated language

DO NOT DELETE THIS! Please take the time to fill this out properly. I am not able to help you if I do not know what you are executing and what error messages you are getting. If you are having problems with a specific video make sure to include the video id.
To Reproduce
Steps to reproduce the behavior:
What code / cli command are you executing?
I want downlaod a subtile except englosh for a video in colab:
video_id = "Sp3L1wP1urs"
YouTubeTranscriptApi.get_transcript(video_id, languages=['de'])

Which Python version are you using?
Python 3.10.12
Which version of youtube-transcript-api are you using?
youtube-transcript-api 0.6.2
Expected behavior
I want it download every translated transcript in the youtube for a video
Actual behaviour
Instead I received the following error message:
NoTranscriptFound                         Traceback (most recent call last)
[<ipython-input-18-b4b43278cb7a>](https://localhost:8080/#) in <cell line: 2>()
      1 video_id = "Sp3L1wP1urs"
----> 2 YouTubeTranscriptApi.get_transcript(video_id, languages=['de'])

2 frames
[/usr/local/lib/python3.10/dist-packages/youtube_transcript_api/_transcripts.py](https://localhost:8080/#) in _find_transcript(self, language_codes, transcript_dicts)
    217                     return transcript_dict[language_code]
    218
--> 219         raise NoTranscriptFound(
    220             self.video_id,
    221             language_codes,

NoTranscriptFound:
Could not retrieve a transcript for the video https://www.youtube.com/watch?v=Sp3L1wP1urs! This is most likely caused by:

No transcripts were found for any of the requested language codes: ['de']

For this video (Sp3L1wP1urs) transcripts are available in the following languages:

(MANUALLY CREATED)
None

(GENERATED)
 - en ("English (auto-generated)")[TRANSLATABLE]

(TRANSLATION LANGUAGES)
 - af ("Afrikaans")
 - ak ("Akan")
 - sq ("Albanian")
 - am ("Amharic")
 - ar ("Arabic")
 - hy ("Armenian")
 - as ("Assamese")
 - ay ("Aymara")
 - az ("Azerbaijani")
 - bn ("Bangla")
 - eu ("Basque")
 - be ("Belarusian")
 - bho ("Bhojpuri")
 - bs ("Bosnian")
 - bg ("Bulgarian")
 - my ("Burmese")
 - ca ("Catalan")
 - ceb ("Cebuano")
 - zh-Hans ("Chinese (Simplified)")
 - zh-Hant ("Chinese (Traditional)")
 - co ("Corsican")
 - hr ("Croatian")
 - cs ("Czech")
 - da ("Danish")
 - dv ("Divehi")
 - nl ("Dutch")
 - en ("English")
 - eo ("Esperanto")
 - et ("Estonian")
 - ee ("Ewe")
 - fil ("Filipino")
 - fi ("Finnish")
 - fr ("French")
 - gl ("Galician")
 - lg ("Ganda")
 - ka ("Georgian")
 - de ("German")
 - el ("Greek")
 - gn ("Guarani")
 - gu ("Gujarati")
 - ht ("Haitian Creole")
 - ha ("Hausa")
 - haw ("Hawaiian")
 - iw ("Hebrew")
 - hi ("Hindi")
 - hmn ("Hmong")
 - hu ("Hungarian")
 - is ("Icelandic")
 - ig ("Igbo")
 - id ("Indonesian")
 - ga ("Irish")
 - it ("Italian")
 - ja ("Japanese")
 - jv ("Javanese")
 - kn ("Kannada")
 - kk ("Kazakh")
 - km ("Khmer")
 - rw ("Kinyarwanda")
 - ko ("Korean")
 - kri ("Krio")
 - ku ("Kurdish")
 - ky ("Kyrgyz")
 - lo ("Lao")
 - la ("Latin")
 - lv ("Latvian")
 - ln ("Lingala")
 - lt ("Lithuanian")
 - lb ("Luxembourgish")
 - mk ("Macedonian")
 - mg ("Malagasy")
 - ms ("Malay")
 - ml ("Malayalam")
 - mt ("Maltese")
 - mi ("Māori")
 - mr ("Marathi")
 - mn ("Mongolian")
 - ne ("Nepali")
 - nso ("Northern Sotho")
 - no ("Norwegian")
 - ny ("Nyanja")
 - or ("Odia")
 - om ("Oromo")
 - ps ("Pashto")
 - fa ("Persian")
 - pl ("Polish")
 - pt ("Portuguese")
 - pa ("Punjabi")
 - qu ("Quechua")
 - ro ("Romanian")
 - ru ("Russian")
 - sm ("Samoan")
 - sa ("Sanskrit")
 - gd ("Scottish Gaelic")
 - sr ("Serbian")
 - sn ("Shona")
 - sd ("Sindhi")
 - si ("Sinhala")
 - sk ("Slovak")
 - sl ("Slovenian")
 - so ("Somali")
 - st ("Southern Sotho")
 - es ("Spanish")
 - su ("Sundanese")
 - sw ("Swahili")
 - sv ("Swedish")
 - tg ("Tajik")
 - ta ("Tamil")
 - tt ("Tatar")
 - te ("Telugu")
 - th ("Thai")
 - ti ("Tigrinya")
 - ts ("Tsonga")
 - tr ("Turkish")
 - tk ("Turkmen")
 - uk ("Ukrainian")
 - ur ("Urdu")
 - ug ("Uyghur")
 - uz ("Uzbek")
 - vi ("Vietnamese")
 - cy ("Welsh")
 - fy ("Western Frisian")
 - xh ("Xhosa")
 - yi ("Yiddish")
 - yo ("Yoruba")
 - zu ("Zulu")

If you are sure that the described cause is not responsible for this error and that a transcript should be retrievable, please create an issue at https://github.com/jdepoix/youtube-transcript-api/issues. Please add which version of youtube_transcript_api you are using and provide the information needed to replicate the error. Also make sure that there are no open issues which already describe your problem!

Hi @MammadTavakoli,
you're trying to fetch a german transcript and, as the error message indicates, there is none (only automatically generated en transcript).
I will close this now as there doesn't seem to be an issue here.

Hi @jdepoix
How can download translated subtitle? with yt-dlp I can do that?

Please read the README. It's all documented there.


Mar 28 15:41:55 k3s-node2 k3s[8452]: E0328 15:41:55.263517    8452 available_controller.go:508] v1beta1.metrics.k8s.io failed with: Operation cannot be fulfilled on apiservices.apiregistration.k8s.io "v1beta1.metrics.k8s.io": the object h
Mar 28 15:42:00 k3s-node2 k3s[8452]: E0328 15:42:00.280779    8452 available_controller.go:508] v1beta1.metrics.k8s.io failed with: failing or missing response from https://<IP_ADDRESS>:443/apis/metrics.k8s.io/v1beta1: Get "https://10.43
Mar 28 15:42:05 k3s-node2 k3s[8452]: E0328 15:42:05.296275    8452 available_controller.go:508] v1beta1.metrics.k8s.io failed with: Operation cannot be fulfilled on apiservices.apiregistration.k8s.io "v1beta1.metrics.k8s.io": the object h
Mar 28 15:42:10 k3s-node2 k3s[8452]: E0328 15:42:10.318641    8452 available_controller.go:508] v1beta1.metrics.k8s.io failed with: failing or missing response from https://<IP_ADDRESS>:443/apis/metrics.k8s.io/v1beta1: Get "https://10.43
Mar 28 15:42:15 k3s-node2 k3s[8452]: E0328 15:42:15.324753    8452 available_controller.go:508] v1beta1.metrics.k8s.io failed with: Operation cannot be fulfilled on apiservices.apiregistration.k8s.io "v1beta1.metrics.k8s.io": the object h
Mar 28 15:42:20 k3s-node2 k3s[8452]: E0328 15:42:20.333974    8452 available_controller.go:508] v1beta1.metrics.k8s.io failed with: failing or missing response from https://<IP_ADDRESS>:443/apis/metrics.k8s.io/v1beta1: Get "https://10.43
Mar 28 15:42:25 k3s-node2 k3s[8452]: E0328 15:42:25.339387    8452 available_controller.go:508] v1beta1.metrics.k8s.io failed with: Operation cannot be fulfilled on apiservices.apiregistration.k8s.io "v1beta1.metrics.k8s.io": the object h
Mar 28 15:42:30 k3s-node2 k3s[8452]: E0328 15:42:30.348943    8452 available_controller.go:508] v1beta1.metrics.k8s.io failed with: failing or missing response from https://<IP_ADDRESS>:443/apis/metrics.k8s.io/v1beta1: Get "https://10.43
Mar 28 15:42:31 k3s-node2 k3s[8452]: E0328 15:42:31.288031    8452 controller.go:116] loading OpenAPI spec for "v1beta1.metrics.k8s.io" failed with: failed to retrieve openAPI spec, http error: ResponseCode: 503, Body: error trying to rea
Mar 28 15:42:31 k3s-node2 k3s[8452]: , Header: map[Content-Type:[text/plain; charset=utf-8] X-Content-Type-Options:[nosniff]]

Additional context / logs:

master server2 shows log
Mar 28 15:41:51 k3s-node2 k3s[8452]: I0328 15:41:51.204685    8452 controller.go:129] OpenAPI AggregationController: action for item v1beta1.metrics.k8s.io: Rate Limited Requeue.
Mar 28 15:41:55 k3s-node2 k3s[8452]: E0328 15:41:55.263517    8452 available_controller.go:508] v1beta1.metrics.k8s.io failed with: Operation cannot be fulfilled on apiservices.apiregistration.k8s.io "v1beta1.metrics.k8s.io": the object h
Mar 28 15:42:00 k3s-node2 k3s[8452]: E0328 15:42:00.280779    8452 available_controller.go:508] v1beta1.metrics.k8s.io failed with: failing or missing response from https://<IP_ADDRESS>:443/apis/metrics.k8s.io/v1beta1: Get "https://10.43
Mar 28 15:42:05 k3s-node2 k3s[8452]: E0328 15:42:05.296275    8452 available_controller.go:508] v1beta1.metrics.k8s.io failed with: Operation cannot be fulfilled on apiservices.apiregistration.k8s.io "v1beta1.metrics.k8s.io": the object h
Mar 28 15:42:10 k3s-node2 k3s[8452]: E0328 15:42:10.318641    8452 available_controller.go:508] v1beta1.metrics.k8s.io failed with: failing or missing response from https://<IP_ADDRESS>:443/apis/metrics.k8s.io/v1beta1: Get "https://10.43
Mar 28 15:42:15 k3s-node2 k3s[8452]: E0328 15:42:15.324753    8452 available_controller.go:508] v1beta1.metrics.k8s.io failed with: Operation cannot be fulfilled on apiservices.apiregistration.k8s.io "v1beta1.metrics.k8s.io": the object h
Mar 28 15:42:20 k3s-node2 k3s[8452]: E0328 15:42:20.333974    8452 available_controller.go:508] v1beta1.metrics.k8s.io failed with: failing or missing response from https://<IP_ADDRESS>:443/apis/metrics.k8s.io/v1beta1: Get "https://10.43
Mar 28 15:42:25 k3s-node2 k3s[8452]: E0328 15:42:25.339387    8452 available_controller.go:508] v1beta1.metrics.k8s.io failed with: Operation cannot be fulfilled on apiservices.apiregistration.k8s.io "v1beta1.metrics.k8s.io": the object h
Mar 28 15:42:30 k3s-node2 k3s[8452]: E0328 15:42:30.348943    8452 available_controller.go:508] v1beta1.metrics.k8s.io failed with: failing or missing response from https://<IP_ADDRESS>:443/apis/metrics.k8s.io/v1beta1: Get "https://10.43
Mar 28 15:42:31 k3s-node2 k3s[8452]: E0328 15:42:31.288031    8452 controller.go:116] loading OpenAPI spec for "v1beta1.metrics.k8s.io" failed with: failed to retrieve openAPI spec, http error: ResponseCode: 503, Body: error trying to rea
Mar 28 15:42:31 k3s-node2 k3s[8452]: , Header: map[Content-Type:[text/plain; charset=utf-8] X-Content-Type-Options:[nosniff]]

Backporting

[ ] Needs backporting to older releases

You've trimmed the end off of all your error messages so I can't see what the actual failure logged by the apiserver is, but it appears that for some reason the metrics-server pod isn't running or can't be reached by the apiservers. Please check the metrics-server pod logs.

You've trimmed the end off of all your error messages so I can't see what the actual failure logged by the apiserver is, but it appears that for some reason the metrics-server pod isn't running or can't be reached by the apiservers. Please check the metrics-server pod logs.

Mar 29 09:40:25 k3s-node2 k3s[4329]: , Header: map[Content-Type:[text/plain; charset=utf-8] X-Content-Type-Options:[nosniff]]
Mar 29 09:40:25 k3s-node2 k3s[4329]: I0329 09:40:25.988168    4329 controller.go:129] OpenAPI AggregationController: action for item v1beta1.metrics.k8s.io: Rate Limited Requeue.
Mar 29 09:40:26 k3s-node2 k3s[4329]: E0329 09:40:26.090621    4329 available_controller.go:508] v1beta1.metrics.k8s.io failed with: Operation cannot be fulfilled on apiservices.apiregistration.k8s.io "v1beta1.metrics.k8s.io": the object has been modified; please apply your changes to the latest version and try again
Mar 29 09:40:31 k3s-node2 k3s[4329]: E0329 09:40:31.099700    4329 available_controller.go:508] v1beta1.metrics.k8s.io failed with: failing or missing response from https://<IP_ADDRESS>:443/apis/metrics.k8s.io/v1beta1: Get "https://<IP_ADDRESS>:443/apis/metrics.k8s.io/v1beta1": net/http: request canceled while waiting for connection (Client.Timeout exceeded while awaiting headers)
Mar 29 09:40:36 k3s-node2 k3s[4329]: E0329 09:40:36.102961    4329 available_controller.go:508] v1beta1.metrics.k8s.io failed with: failing or missing response from https://<IP_ADDRESS>:443/apis/metrics.k8s.io/v1beta1: Get "https://<IP_ADDRESS>:443/apis/metrics.k8s.io/v1beta1": net/http: request canceled while waiting for connection (Client.Timeout exceeded while awaiting headers)
Mar 29 09:40:41 k3s-node2 k3s[4329]: E0329 09:40:41.108659    4329 available_controller.go:508] v1beta1.metrics.k8s.io failed with: failing or missing response from https://<IP_ADDRESS>:443/apis/metrics.k8s.io/v1beta1: Get "https://<IP_ADDRESS>:443/apis/metrics.k8s.io/v1beta1": net/http: request canceled while waiting for connection (Client.Timeout exceeded while awaiting headers)
Mar 29 09:40:46 k3s-node2 k3s[4329]: E0329 09:40:46.116424    4329 available_controller.go:508] v1beta1.metrics.k8s.io failed with: Operation cannot be fulfilled on apiservices.apiregistration.k8s.io "v1beta1.metrics.k8s.io": the object has been modified; please apply your changes to the latest version and try again
Mar 29 09:40:51 k3s-node2 k3s[4329]: E0329 09:40:51.122950    4329 available_controller.go:508] v1beta1.metrics.k8s.io failed with: failing or missing response from https://<IP_ADDRESS>:443/apis/metrics.k8s.io/v1beta1: Get "https://<IP_ADDRESS>:443/apis/metrics.k8s.io/v1beta1": net/http: request canceled while waiting for connection (Client.Timeout exceeded while awaiting headers)
Mar 29 09:40:56 k3s-node2 k3s[4329]: E0329 09:40:56.130200    4329 available_controller.go:508] v1beta1.metrics.k8s.io failed with: Operation cannot be fulfilled on apiservices.apiregistration.k8s.io "v1beta1.metrics.k8s.io": the object has been modified; please apply your changes to the latest version and try again
Mar 29 09:41:01 k3s-node2 k3s[4329]: E0329 09:41:01.147269    4329 available_controller.go:508] v1beta1.metrics.k8s.io failed with: failing or missing response from https://<IP_ADDRESS>:443/apis/metrics.k8s.io/v1beta1: Get "https://<IP_ADDRESS>:443/apis/metrics.k8s.io/v1beta1": context deadline exceeded
Mar 29 09:41:02 k3s-node2 k3s[4329]: E0329 09:41:02.102317    4329 controller.go:116] loading OpenAPI spec for "v1beta1.metrics.k8s.io" failed with: failed to retrieve openAPI spec, http error: ResponseCode: 503, Body: error trying to reach service: dial tcp <IP_ADDRESS>:443: i/o timeout
Mar 29 09:41:02 k3s-node2 k3s[4329]: , Header: map[Content-Type:[text/plain; charset=utf-8] X-Content-Type-Options:[nosniff]]
Mar 29 09:41:02 k3s-node2 k3s[4329]: I0329 09:41:02.102355    4329 controller.go:129] OpenAPI AggregationController: action for item v1beta1.metrics.k8s.io: Rate Limited Requeue.
Mar 29 09:41:06 k3s-node2 k3s[4329]: E0329 09:41:06.154342    4329 available_controller.go:508] v1beta1.metrics.k8s.io failed with: Operation cannot be fulfilled on apiservices.apiregistration.k8s.io "v1beta1.metrics.k8s.io": the object has been modified; please apply your changes to the latest version and try again
Mar 29 09:41:11 k3s-node2 k3s[4329]: E0329 09:41:11.167336    4329 available_controller.go:508] v1beta1.metrics.k8s.io failed with: failing or missing response from https://<IP_ADDRESS>:443/apis/metrics.k8s.io/v1beta1: Get "https://<IP_ADDRESS>:443/apis/metrics.k8s.io/v1beta1": context deadline exceeded

[root@k3s-node1 log]# kubectl get pods -n kube-system|grep "metrics-server"
metrics-server-86cbb8457f-z4n4q           1/1     Running     1          18h
[root@k3s-node1 log]# kubectl logs metrics-server-86cbb8457f-z4n4q -n kube-system
I0329 01:39:30.709641       1 serving.go:312] Generated self-signed cert (apiserver.local.config/certificates/apiserver.crt, apiserver.local.config/certificates/apiserver.key)
I0329 01:39:31.204775       1 secure_serving.go:116] Serving securely on [::]:443
E0329 01:40:31.233549       1 manager.go:111] unable to fully collect metrics: unable to fully scrape metrics from source kubelet_summary:k3s-node2: unable to fetch metrics from Kubelet k3s-node2 (k3s-node2): Get https://k3s-node2:10250/stats/summary?only_cpu_and_memory=true: x509: certificate is valid for k3s-node1, localhost, not k3s-node2
E0329 01:41:31.418154       1 manager.go:111] unable to fully collect metrics: unable to fully scrape metrics from source kubelet_summary:k3s-node2: unable to fetch metrics from Kubelet k3s-node2 (k3s-node2): Get https://k3s-node2:10250/stats/summary?only_cpu_and_memory=true: x509: certificate is valid for k3s-node1, localhost, not k3s-node2
E0329 01:42:31.217012       1 manager.go:111] unable to fully collect metrics: unable to fully scrape metrics from source kubelet_summary:k3s-node2: unable to fetch metrics from Kubelet k3s-node2 (k3s-node2): Get https://k3s-node2:10250/stats/summary?only_cpu_and_memory=true: x509: certificate is valid for k3s-node1, localhost, not k3s-node2

You've trimmed the end off of all your error messages so I can't see what the actual failure logged by the apiserver is, but it appears that for some reason the metrics-server pod isn't running or can't be reached by the apiservers. Please check the metrics-server pod logs.

Mar 29 09:40:25 k3s-node2 k3s[4329]: , Header: map[Content-Type:[text/plain; charset=utf-8] X-Content-Type-Options:[nosniff]]
Mar 29 09:40:25 k3s-node2 k3s[4329]: I0329 09:40:25.988168    4329 controller.go:129] OpenAPI AggregationController: action for item v1beta1.metrics.k8s.io: Rate Limited Requeue.
Mar 29 09:40:26 k3s-node2 k3s[4329]: E0329 09:40:26.090621    4329 available_controller.go:508] v1beta1.metrics.k8s.io failed with: Operation cannot be fulfilled on apiservices.apiregistration.k8s.io "v1beta1.metrics.k8s.io": the object has been modified; please apply your changes to the latest version and try again
Mar 29 09:40:31 k3s-node2 k3s[4329]: E0329 09:40:31.099700    4329 available_controller.go:508] v1beta1.metrics.k8s.io failed with: failing or missing response from https://<IP_ADDRESS>:443/apis/metrics.k8s.io/v1beta1: Get "https://<IP_ADDRESS>:443/apis/metrics.k8s.io/v1beta1": net/http: request canceled while waiting for connection (Client.Timeout exceeded while awaiting headers)
Mar 29 09:40:36 k3s-node2 k3s[4329]: E0329 09:40:36.102961    4329 available_controller.go:508] v1beta1.metrics.k8s.io failed with: failing or missing response from https://<IP_ADDRESS>:443/apis/metrics.k8s.io/v1beta1: Get "https://<IP_ADDRESS>:443/apis/metrics.k8s.io/v1beta1": net/http: request canceled while waiting for connection (Client.Timeout exceeded while awaiting headers)
Mar 29 09:40:41 k3s-node2 k3s[4329]: E0329 09:40:41.108659    4329 available_controller.go:508] v1beta1.metrics.k8s.io failed with: failing or missing response from https://<IP_ADDRESS>:443/apis/metrics.k8s.io/v1beta1: Get "https://<IP_ADDRESS>:443/apis/metrics.k8s.io/v1beta1": net/http: request canceled while waiting for connection (Client.Timeout exceeded while awaiting headers)
Mar 29 09:40:46 k3s-node2 k3s[4329]: E0329 09:40:46.116424    4329 available_controller.go:508] v1beta1.metrics.k8s.io failed with: Operation cannot be fulfilled on apiservices.apiregistration.k8s.io "v1beta1.metrics.k8s.io": the object has been modified; please apply your changes to the latest version and try again
Mar 29 09:40:51 k3s-node2 k3s[4329]: E0329 09:40:51.122950    4329 available_controller.go:508] v1beta1.metrics.k8s.io failed with: failing or missing response from https://<IP_ADDRESS>:443/apis/metrics.k8s.io/v1beta1: Get "https://<IP_ADDRESS>:443/apis/metrics.k8s.io/v1beta1": net/http: request canceled while waiting for connection (Client.Timeout exceeded while awaiting headers)
Mar 29 09:40:56 k3s-node2 k3s[4329]: E0329 09:40:56.130200    4329 available_controller.go:508] v1beta1.metrics.k8s.io failed with: Operation cannot be fulfilled on apiservices.apiregistration.k8s.io "v1beta1.metrics.k8s.io": the object has been modified; please apply your changes to the latest version and try again
Mar 29 09:41:01 k3s-node2 k3s[4329]: E0329 09:41:01.147269    4329 available_controller.go:508] v1beta1.metrics.k8s.io failed with: failing or missing response from https://<IP_ADDRESS>:443/apis/metrics.k8s.io/v1beta1: Get "https://<IP_ADDRESS>:443/apis/metrics.k8s.io/v1beta1": context deadline exceeded
Mar 29 09:41:02 k3s-node2 k3s[4329]: E0329 09:41:02.102317    4329 controller.go:116] loading OpenAPI spec for "v1beta1.metrics.k8s.io" failed with: failed to retrieve openAPI spec, http error: ResponseCode: 503, Body: error trying to reach service: dial tcp <IP_ADDRESS>:443: i/o timeout
Mar 29 09:41:02 k3s-node2 k3s[4329]: , Header: map[Content-Type:[text/plain; charset=utf-8] X-Content-Type-Options:[nosniff]]
Mar 29 09:41:02 k3s-node2 k3s[4329]: I0329 09:41:02.102355    4329 controller.go:129] OpenAPI AggregationController: action for item v1beta1.metrics.k8s.io: Rate Limited Requeue.
Mar 29 09:41:06 k3s-node2 k3s[4329]: E0329 09:41:06.154342    4329 available_controller.go:508] v1beta1.metrics.k8s.io failed with: Operation cannot be fulfilled on apiservices.apiregistration.k8s.io "v1beta1.metrics.k8s.io": the object has been modified; please apply your changes to the latest version and try again
Mar 29 09:41:11 k3s-node2 k3s[4329]: E0329 09:41:11.167336    4329 available_controller.go:508] v1beta1.metrics.k8s.io failed with: failing or missing response from https://<IP_ADDRESS>:443/apis/metrics.k8s.io/v1beta1: Get "https://<IP_ADDRESS>:443/apis/metrics.k8s.io/v1beta1": context deadline exceeded

[root@k3s-node1 log]# kubectl get pods -n kube-system|grep "metrics-server"
metrics-server-86cbb8457f-z4n4q           1/1     Running     1          18h
[root@k3s-node1 log]# kubectl logs metrics-server-86cbb8457f-z4n4q -n kube-system
I0329 01:39:30.709641       1 serving.go:312] Generated self-signed cert (apiserver.local.config/certificates/apiserver.crt, apiserver.local.config/certificates/apiserver.key)
I0329 01:39:31.204775       1 secure_serving.go:116] Serving securely on [::]:443
E0329 01:40:31.233549       1 manager.go:111] unable to fully collect metrics: unable to fully scrape metrics from source kubelet_summary:k3s-node2: unable to fetch metrics from Kubelet k3s-node2 (k3s-node2): Get https://k3s-node2:10250/stats/summary?only_cpu_and_memory=true: x509: certificate is valid for k3s-node1, localhost, not k3s-node2
E0329 01:41:31.418154       1 manager.go:111] unable to fully collect metrics: unable to fully scrape metrics from source kubelet_summary:k3s-node2: unable to fetch metrics from Kubelet k3s-node2 (k3s-node2): Get https://k3s-node2:10250/stats/summary?only_cpu_and_memory=true: x509: certificate is valid for k3s-node1, localhost, not k3s-node2
E0329 01:42:31.217012       1 manager.go:111] unable to fully collect metrics: unable to fully scrape metrics from source kubelet_summary:k3s-node2: unable to fetch metrics from Kubelet k3s-node2 (k3s-node2): Get https://k3s-node2:10250/stats/summary?only_cpu_and_memory=true: x509: certificate is valid for k3s-node1, localhost, not k3s-node2

does it matter about ipvs?
because when i configured it with defualt kube-proxy, it was ok

You've trimmed the end off of all your error messages so I can't see what the actual failure logged by the apiserver is, but it appears that for some reason the metrics-server pod isn't running or can't be reached by the apiservers. Please check the metrics-server pod logs.

does it matter about ipvs?
because when i configured it with defualt kube-proxy, it was ok

IPVS should work, but we don't test it. You may need to do additional work to ensure that everything is open between your nodes.
The other error you posted does concern me though. Do you have some odd issue with reusing hostnames or IPs on your network?
E0329 01:42:31.217012       1 manager.go:111] unable to fully collect metrics: unable to fully scrape metrics from source kubelet_summary:k3s-node2: unable to fetch metrics from Kubelet k3s-node2 (k3s-node2): Get https://k3s-node2:10250/stats/summary?only_cpu_and_memory=true: x509: certificate is valid for k3s-node1, localhost, not k3s-node2

IPVS should work, but we don't test it. You may need to do additional work to ensure that everything is open between your nodes.
The other error you posted does concern me though. How does one of your nodes have a cert for a different node? Do you have some odd issue with reusing hostnames or IPs on your network? E0329 01:42:31.217012 1 manager.go:111] unable to fully collect metrics: unable to fully scrape metrics from source kubelet_summary:k3s-node2: unable to fetch metrics from Kubelet k3s-node2 (k3s-node2): Get https://k3s-node2:10250/stats/summary?only_cpu_and_memory=true: x509: certificate is valid for k3s-node1, localhost, not k3s-node2

k3s-node1

[root@k3s-node1 ~]# hostname
k3s-node1
[root@k3s-node1 ~]# cat /etc/hosts
<IP_ADDRESS>   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
<IP_ADDRESS> k3s-node1 k3s-node1
<IP_ADDRESS> k3s-node1
<IP_ADDRESS> k3s-node2
<IP_ADDRESS> k3s-node3

k3s-node2

[root@k3s-node2 ~]# hostname
k3s-node2
[root@k3s-node2 ~]# cat /etc/hosts
<IP_ADDRESS>   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
<IP_ADDRESS> k3s-node2 k3s-node2
<IP_ADDRESS> k3s-node1
<IP_ADDRESS> k3s-node2
<IP_ADDRESS> k3s-node3

Why do you have a secondary loopback address for each node's hostname? The hostname in the hosts file (if you're working without DNS) should resolve to the LAN IP address, not a loopback address.

kubectl logs metrics-server-86cbb8457f-z4n4q -n kube-system

i found this
[root@k3s-node1 ~]# kubectl logs metrics-server-86cbb8457f-kvzdd -n kube-system
I0330 01:57:47.880252       1 serving.go:312] Generated self-signed cert (apiserver.local.config/certificates/apiserver.crt, apiserver.local.config/certificates/apiserver.key)
I0330 01:57:48.088525       1 secure_serving.go:116] Serving securely on [::]:443
E0330 01:59:18.793457       1 reflector.go:270] k8s.io/client-go/informers/factory.go:133: Failed to watch *v1.Pod: Get https://<IP_ADDRESS>:443/api/v1/pods?resourceVersion=894&timeout=9m4s&timeoutSeconds=544&watch=true: dial tcp <IP_ADDRESS>:443: connect: connection refused
E0330 01:59:18.794049       1 reflector.go:270] k8s.io/client-go/informers/factory.go:133: Failed to watch *v1.Node: Get https://<IP_ADDRESS>:443/api/v1/nodes?resourceVersion=875&timeout=6m4s&timeoutSeconds=364&watch=true: dial tcp <IP_ADDRESS>:443: connect: connection refused
[root@k3s-node1 ~]# curl -k https://<IP_ADDRESS>:443
{
  "kind": "Status",
  "apiVersion": "v1",
  "metadata": {

  },
  "status": "Failure",
  "message": "Unauthorized",
  "reason": "Unauthorized",
  "code": 401

Yeah, it looks like your cluster network is kinda messed up. I would fix your hosts file, restart the nodes, and see if everything comes up in a better state.

: map[Cont

i find a issue about this question

i find a issue about this question
unable to fetch metrics from Kubelet

i tried patch my deployment

metrics_patch.yaml

spec:
  template:
    spec:
      containers:
        - name: metrics-server
          command:
            - /metrics-server
            - --metric-resolution=30s
            - --kubelet-insecure-tls=true
            - --kubelet-preferred-address-types=InternalIP,Hostname,InternalDNS,ExternalDNS,ExternalIP

kubectl patch deployment metrics-server --patch-file metrics_patch.yaml -n kube-system
and it worded

[root@k3s-release-server2 ~]# kubectl logs metrics-server-7899bdb5fd-wbphf -n kube-system
I0610 09:53:36.890370       1 serving.go:312] Generated self-signed cert (apiserver.local.config/certificates/apiserver.crt, apiserver.local.config/certificates/apiserver.key)
I0610 09:53:37.634498       1 secure_serving.go:116] Serving securely on [::]:443
E0610 09:54:07.644855       1 sinkprov.go:135] duplicate pod kube-system/svclb-traefik-w9rqc received
E0610 09:54:07.644887       1 sinkprov.go:135] duplicate pod kube-system/metrics-server-7899bdb5fd-wbphf received
E0610 09:54:37.632009       1 sinkprov.go:135] duplicate pod kube-system/svclb-traefik-w9rqc received
E0610 09:54:37.632036       1 sinkprov.go:135] duplicate pod kube-system/metrics-server-7899bdb5fd-wbphf received
E0610 09:55:07.632141       1 sinkprov.go:135] duplicate pod kube-system/svclb-traefik-w9rqc received
E0610 09:55:07.632170       1 sinkprov.go:135] duplicate pod kube-system/metrics-server-7899bdb5fd-wbphf received
E0610 09:55:37.627343       1 sinkprov.go:135] duplicate pod kube-system/metrics-server-7899bdb5fd-wbphf received
E0610 09:55:37.627371       1 sinkprov.go:135] duplicate pod kube-system/svclb-traefik-w9rqc received
E0610 09:56:07.634909       1 sinkprov.go:135] duplicate pod kube-system/svclb-traefik-w9rqc received
E0610 09:56:07.634931       1 sinkprov.go:135] duplicate pod kube-system/metrics-server-7899bdb5fd-wbphf received
E0610 09:56:37.636754       1 sinkprov.go:135] duplicate pod kube-system/svclb-traefik-w9rqc received
E0610 09:56:37.636785       1 sinkprov.go:135] duplicate pod kube-system/metrics-server-7899bdb5fd-wbphf received
E0610 09:57:07.629617       1 sinkprov.go:135] duplicate pod kube-system/svclb-traefik-w9rqc received
...

but my other k3s-node got this

# kubectl top nodes
W0610 18:01:27.029164    7766 top_node.go:119] Using json format to get metrics. Next release will switch to protocol-buffers, switch early by passing --use-protocol-buffers flag
Error from server (ServiceUnavailable): the server is currently unable to handle the request (get nodes.metrics.k8s.io)

It sounds like one of your server nodes is not able to reach the pod running on another node. Can you confirm that the correct ports for your flannel backend are open between both nodes, and that other inter-node cluster traffic (coredns, etc) works properly?

It sounds like one of your server nodes is not able to reach the pod running on another node. Can you confirm that the correct ports for your flannel backend are open between both nodes, and that other inter-node cluster traffic (coredns, etc) works properly?

i dont know why the certificate is not valid..🤔
[root@k3s-release-server1 ~]# kubectl logs coredns-7448499f4d-9jrc8 -n kube-system
Error from server: Get "https://k3s-release-server1:10250/containerLogs/kube-system/coredns-7448499f4d-9jrc8/coredns": x509: certificate is valid for k3s-release-server2, localhost, not k3s-release-server1

the firewall was closed
[root@k3s-release-server1 ~]# netstat -ano|grep 8472
udp        0      0 <IP_ADDRESS>:8472            <IP_ADDRESS>:*                           off (0.00/0/0)

[root@k3s-release-server2 ~]# netstat -ano|grep 8472
udp        0      0 <IP_ADDRESS>:8472            <IP_ADDRESS>:*                           off (0.00/0/0)

now the situation is like this
when i use 'iptables' as the kube-proxy for my k3s cluster, it was ok
but if i enbled the ipvs, it was wrong
maybe there is something configuration different between them?

I don't believe we test switching back and forth between the two on a running cluster. How was the cluster originally started?

it was running with 'ipvs' kube-proxy

it was running with 'ipvs' kube-proxy

same issue with ipvs mode, no problem with iptable mode, have you resolved this issue?


@redux-saga/is: stricter check for is.pattern

Q
A

Fixed Issues?
Fixes #1532

Patch: Bug Fix?

Major: Breaking Change?

Minor: New Feature?

Tests Added + Pass?

Any Dependency Changes?

@redux-saga/is: stricter check for is.pattern per https://github.com/redux-saga/redux-saga/issues/1532#issuecomment-418715321

Replace all process.env.NODE_ENV === 'development' to process.env.NODE_ENV !== 'production'. Now tests run under checks, we can add some more tests for common errors.


rcc config

Thanks for contributing to the project!
Please write a short description of your changes.
We also maintain a changelog in CHANGELOG.md. If you add a feature or fix a bug, please add an entry there :)

Nice, this seems like an excellent change. I'll try to find the time to give it a proper review soon

@burrbull did you use this branch on some of your project, on real hardware? If yes, I'm OK to merge it.

@burrbull did you use this branch on some of your project, on real hardware? If yes, I'm OK to merge it.

I would rather have someone else recheck this.

Everything seems to work fine but I only really tested if my changes still function properly.


Higher units for ETA

Even with an ETA of several years, the ETA of a job is still displayed as e.g. 51721h18m55s
It would be trivial to introduce and potentially useful to automatically display at least days and year or have an option to do days, months and years.

We use time.Duration for ETA normally which only shows up to hours when stringified.
We could cast it to an fs.Duration for printing which has the higher units but it doesn't print out exactly the same, so it will go 23h59m59s to 1d, 1.5d, 1.8d, 6.9d, 1w
That would be a very easy change if someone wants to have a go.
PS Hope you don't get many jobs with an ETA of several years!

I'm not familiar with Go but this seems to be a simple library that would do the job while keeping time.Duration.

https://github.com/ncw/rclone/compare/test...turkeyphant:patch-1

durafmt looks interesting.  Rclone has a not as good version built in so you should find that using instead of durafmt.Parse(d).String() that fs.Duration(d).String() does approximately the right thing without taking on another dependency.

The implementation uses the same implementation durafmt uses for String(), made it less complex with just outputting suffixes.
I did not overwrite the current fs.Duration.String() implementation, but created a new function, fs.Duration.ReadableString(), and set etaString() in fs/accounting/stats.go to use this instead of time.Duration.String()
It was not overwritten as String() and ParseString() in fs.Duration have other references, which this implementation might conflict with.

I've merged this to master now which means it will be in the latest beta in 15-30 mins and released in v1.49
Thank you very much to our first time contributor @AbelThar - excellent job :-)

Thank you both!


Bookshelf.transaction or bookshelf.transaction ?

Really small issue but I just want to confirm this. Should I call transaction for the initialized bookshelf instance or not? In the web page example (http://bookshelfjs.org/#Bookshelf-transaction), the code hints(capital B) that I should:
var Bookshelf = require('bookshelf');
Bookshelf.transaction(function(t) { //dostuff });

but should it be like this instead:
// init knex
var bookshelf = require('bookshelf')(knex);
bookshelf.transaction(function(t) { //dostuff });

or does it matter?

The latter is correct. bookshelf.transaction is just a passthrough to knex.transaction.


Expected zen mode settings

Testing #196328

With TF-IDF, there is no support for synonyms, so I expect there to be missing settings. Even then, are there any settings that should have matched a keyword and showed up, but haven't?

I would've hoped the following showed Zen Mode settings:

I took a look at the zen mode settings and the words "focus", "my", and "editor" don't seem to have a close match to the setting titles or descriptions. In this case, Copilot Chat would be required to find those settings. I'll leave this issue open in case Copilot Chat can't find the zen mode settings with that query either.

We closed this issue because we don't plan to address it in the foreseeable future. If you disagree and feel that this issue is crucial: we are happy to listen and to reconsider.
If you wonder what we are up to, please see our roadmap and issue reporting guidelines.
Thanks for your understanding, and happy coding!


add a command to focus last terminal tab (#225831)

Fixes #225831.
This PR intends to add a new command workbench.action.terminal.focusLast to complete with workbench.action.terminal.focusAtIndex${visibleIndex}.
The new command allows user to focus the last terminal by index, similar to workbench.action.lastEditorInGroup which allows user to focus the last editor in an editor group.
To test the change, create several terminal tabs in the panel, assign a key binding to workbench.action.terminal.focusLast, and use that key binding to verify that last terminal tab can be focused.

Changing milestone to On Deck for now


Fix bad params in configuration email

https://twitter.com/just3ws/status/560526236045565952

It looks like we lose the UTM tracking data. Not sure if that's worth holding this up, though

the code looks good, merge if you're okay with ^

@graysonwright Good call, pushed a fix to maintain them.


Add migration from GitBucket

This PR adds GitBucket as migration source. GitBucket claims to be api compatible with Github so I reused the Github downloader.
Supported:

[x] Milestones
[x] Issues
[x] Pull Requests
[x] Comments
[x] Reviews
[x] Labels

There is no usable public instance so I have not added tests.

Codecov Report

Merging #16767 (aa1a786) into main (cee5f7c) will increase coverage by 0.00%.
The diff coverage is 56.63%.

@@           Coverage Diff           @@
##             main   #16767   +/-   ##
=======================================
  Coverage   45.49%   45.50%
=======================================
  Files         762      763    +1
  Lines       85939    85971   +32
=======================================
+ Hits        39099    39121   +22
- Misses      40527    40536    +9
- Partials     6313     6314    +1

Impacted Files
Coverage Δ

modules/convert/utils.go
81.81% <0.00%> (-8.19%)
:arrow_down:

modules/migrations/gitbucket.go
20.00% <20.00%> (ø)

modules/migrations/github.go
68.95% <65.16%> (+0.27%)
:arrow_up:

modules/structs/repo.go
75.00% <100.00%> (+2.27%)
:arrow_up:

modules/notification/mail/mail.go
35.29% <0.00%> (-2.95%)
:arrow_down:

modules/process/manager.go
72.83% <0.00%> (-2.47%)
:arrow_down:

modules/notification/ui/ui.go
60.86% <0.00%> (-1.45%)
:arrow_down:

models/notification.go
65.13% <0.00%> (-0.88%)
:arrow_down:

modules/queue/workerpool.go
54.19% <0.00%> (+0.38%)
:arrow_up:

... and 6 more

Continue to review full report at Codecov.

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

GitBucket is not http://bitbucket.org . It seems online demo is not avaiable.

There is a Public Demo Instance:
https://gitbucket.herokuapp.com/
Login is root/root.
Hope this helps.

That's right but for tests we need a reliable host. A repository there could/will change and is not usable for tests.

@KN4CK3R

There is no usable public instance so I have not added tests.

https://github.com/go-gitea/gitea/issues/12919#issuecomment-708704206

@6543 That's Bitbucket and not GitBucket.

aaa - did missed it too

@KN4CK3R please resolve conflicts - I'll test manually once https://gitbucket.herokuapp.com/ is up and running - code looks good so far :)

@KN4CK3R

There is no usable public instance so I have not added tests.

#12919 (comment)
EDIT: I worked on this a bit too but did not find a nice sdk so did focus on gogs, etc instead

see https://github.com/go-gitea/gitea/pull/16767#issuecomment-903202232

@KN4CK3R localy tested and got error:
Migrate repository from http://localhost:8080/test/aaaa failed: error while listing repos: GET http://localhost:8080/api/v3/repos/test/aaaa/pulls/1/reviews?per_page=100: 404 Not Found [] - i think we have to ignore reviews like reactions too

The closed issues issue should now be gone. I created a PR for that: https://github.com/gitbucket/gitbucket/pull/2859


How to increase the ft.TextField height?

The height parameter inside the ft.TextField() results in no change in height.

The height parameter inside the ft.TextField() results in no change in height.

What results are trying to achieve?

I trying to create application with two TextField, aligned side by side, which is capable of taking in paragraph. I am seeing samples of textfield here: https://flet.dev/docs/controls/textfield/
Sample image:

So, you want to stretch text vertically?

Yes, something like that.

You can use scale:
import flet as ft

def main(page: ft.Page):
    page.add(
        ft.Text("Hello, world!", size=40, scale=ft.Scale(scale_y=2.0)),
    )

ft.app(main)


Implement sound map value aliasing

This implementation gets rid of the unsound ShallowCopy trait (#74 &
https://github.com/rust-lang/unsafe-code-guidelines/issues/35#issuecomment-731656729),
and replaces it with a wrapper type around aliased values.
The core mechanism is that the wrapper type holds a MaybeUninit<T>,
and aliases it by doing a ptr::read of the whole MaybeUninit<T> to
alias. It then takes care to only give out &Ts, which is allowed to
alias. To drop, the implementation sets a thread-local that the wrapper
uses to determine if it should truly drop the inner T (i.e., to
indicate that this is the last copy, and the T is no longer aliased).
The removal of ShallowCopy makes some of the API nicer, and obviates
the need for evmap-derive. Unfortunately the introduction of the
wrapper also complicates certain bounds which now need to know about the
wrapping. Overall though, an ergonomic win.
The implementation passes all tests, and I think it is sound (if you
think it's not, please let me know!). The one bit that I'm not sure
about is the thread-local if a user nests evmaps (since they'll share
that thread local).
Note that this does not take care of #78.
Fixes #74.
Fixes #55 since ShallowCopy is no longer neeeded.

This change is

I'd like to draw attention to a couple of key unsafeties that I'd like a second opinion on before I merge this (though arguably this is definitely better than what we had, which we know is unsound...):

First, aliasing a MaybeUninit<T> by copying it with ptr::read. I think this is fine since MaybeUninit allows pretty much any content.
https://github.com/jonhoo/rust-evmap/blob/4e83da000cfee94810eb790f25c1dc159def1b12/evmap/src/aliasing.rs#L33-L38

Next, extracting a &T from Aliased<T>'s MaybeUninit<T>. I believe this is sound assuming the T hasn't been dropped because the MaybeUninit<T> was created from a valid T, and we are allowed to alias &T even if T itself cannot be aliased (e.g., Box).
https://github.com/jonhoo/rust-evmap/blob/4e83da000cfee94810eb790f25c1dc159def1b12/evmap/src/aliasing.rs#L108-L113

Then, to complete the circle, the code that causes Aliased<T> to drop the inner T. As long as the caller guarantees that this Aliased<T> is the only copy of T, it should be safe to drop T when this Aliased<T> is dropped even for types that disallow aliasing (like Box). The reasoning is that by the time we actually have a Box, there are no aliases of it any more (by the safety assumption of drop_copies).
https://github.com/jonhoo/rust-evmap/blob/4e83da000cfee94810eb790f25c1dc159def1b12/evmap/src/aliasing.rs#L76-L79
The actual drop code I think is uncontroversial:
https://github.com/jonhoo/rust-evmap/blob/4e83da000cfee94810eb790f25c1dc159def1b12/evmap/src/aliasing.rs#L94-L100

unsafe impl of Send and Sync. I think these are stricter than what the compiler would auto-infer, and I believe they must be this strict since we give out &T across thread boundaries if Aliased<T> is shared or sent.
https://github.com/jonhoo/rust-evmap/blob/4e83da000cfee94810eb790f25c1dc159def1b12/evmap/src/aliasing.rs#L56-L62

As with ShallowCopy before, I think it would be important to move Aliased into left-right (or its own crate) because it's going to be a common concerns among libraries that use it.

Yes, I think I agree that Aliased could be lifted into left-right — there's nothing evmap-specific about it. There is also nothing left-right specific about it really, but it's unlikely to be used much anywhere else, and likely to be used in many implementations. Unfortunately, by moving it into left-right, we're now compounding the thread-local problem. Now any data structure that uses left-right that is embedded into any other data structure that uses left-right share the same thread-local...

So while I still think the explicit drop option has merit, it's definitely not the only one.
First off, there may be something I'm missing here, and please correct me if I'm wrong - but considering Aliased is repr(transparent), is there a reason we can't in absorb_second just cast the inner map to the type with non-Aliased values instead, and just drop them? If that works, we could just remove the drop behaviour from Aliased entirely.
If that's not an option, I think it would the flag would need to be map-local rather than thread-local. We could have some kind of AliasedFactory that has an internal drop_for_real flag and exposes functions to create Aliased instances that refer to it and to toggle the flag. This could be a separate struct or built into WriteHandle directly. Or instead of a reference, we could make the factories have an internal ID and expand DROP_FOR_REAL into some kind of HashSet or something. None of this really feels ideal, but thread_local just feels like asking for trouble down the line.

@MayaWolf Yes, unfortunately that is unsound. That's in part why the current implementation on master that uses ManuallyDrop is unsound. See also the discussion in https://github.com/rust-lang/unsafe-code-guidelines/issues/35.
Map-local would be nice, but sadly that's also hard unless we're willing for every value to hold a pointer back to a bool shared with the map that it uses to check whether things should be dropped. That's potentially a lot of memory overhead. And ignoring that, this might also be tricky to do safely, since we'd be trying to get at a value that is inside the map which we hold out a &mut self to in order to absorb. The bool itself may have to be on the heap somewhere, outside the map but created by the map, and then reclaimed when the map is eventually dropped.
I have an idea that might let us do this without overhead and without the thread-local though. It hinges on this being safe: https://github.com/rust-lang/unsafe-code-guidelines/issues/35#issuecomment-735491663. Commit coming soon.

Unfortunately it doesn't seem like such a transmute is safe either :cry:
https://github.com/rust-lang/unsafe-code-guidelines/issues/35#issuecomment-735495776

I'll be honest, even after having read through this multiple times I'm confused as to what the actual issue of casting between ManuallyDrop<T> (or Aliased<T>) and T would be. Being repr(transparent) it should be irrelevant (and therefore correct) from a memory point of view, and I don't see how "associated type shenanigans" could cause any issue either.
I think an important thing to consider is we do control the SomeType being discussed in this thread to an extent - after all, left-right is intended as a concurrency primitive, not a plug-and-play solution, so if there really is a way to break this (which, I'll be honest, I'm still not seeing it), then I think the best way to go may be a big warning to library authors of "don't use types that do X as your Absorb".
That's obviously not a perfect solution at all, but I don't think it makes sense to sacrifice efficiency or versatility in trying to work around something that honestly seems like it's "theoretically questionable, but practically fine." Unless I'm just underestimating how big of a problem this really is, in which case the AliasedFactory thing is probably the best thing I can come up with.

Yeah, it's fairly involved. The best relevant summary I know of is from the nomicon's page on repr(Rust):

[..] the layout of data is not specified by default. Given the two following struct definitions:
struct A {
    a: i32,
    b: u64,
}

struct B {
    a: i32,
    b: u64,
}

Rust does guarantee that two instances of A have their data laid out in exactly the same way. However Rust does not currently guarantee that an instance of A has the same field ordering or padding as an instance of B.

That's what bites us here. Even though Aliased<T> is #[repr(transparent)], that does not mean that the compiler guarantees that it lays out, say HashMap<K, T> and HashMap<K, Aliased<T>> the same. From what I can piece together from https://github.com/rust-lang/unsafe-code-guidelines/issues/35, part of the issue is that the outer type can use the different types to cause its layout to change. For example, consider this wonky type:
trait Wonky { type Weird; }
struct HashMap<K, V: Wonky>(K, V::Weird, V);

impl<T> Wonky for Aliased<T> { type Weird = u32; }
impl<T> Wonky for T { type Weird = u16; }

That is obviously very contrived, but it does demonstrate a case where the layout of the wrapper changes if you cast V between types, even though the types you case between are repr(transparent). That's why I was trying to get at (in https://github.com/rust-lang/unsafe-code-guidelines/issues/35#issuecomment-735491663) a way where we can guarantee that the outer type cannot distinguish between the cast-between types (since they only differ by a private type that will never implement any traits).
While it's tempting to say "We know that HashMap doesn't do this, and never will", that's not quite sufficient either. First, have you checked?  And third, the compiler does not give this guarantee even if there aren't any wonky associated types involved (see the A and B example earlier), so we'd have to rely on the compiler never changing layout between different same-layout generic parameters. That seems too risky to me, and is why I wanted to push in the other discussion for a way for us to indeed get that guarantee. But so far no dice.
The factor idea I am also super hesitant about unfortunately — storing an extra (identical) pointer for every value is some pretty huge overhead, and not one I'm very keen to swallow. I would rather say "don't embed one evmap in another", though of course someone is still going to do it unwittingly one day...

You can see my current tinkering down that path ignoring the possible unsoundness over on https://github.com/jonhoo/rust-evmap/compare/sound-aliasing...drop-by-generic-type (the commit message has more details).

For comparison, here is my attempt at making dropping Aliased's values implicit. I frankly don't know how this affects performance, that would need testing - but in terms of complexity it's entirely manageable.
I had to make drop() take &self rather than &mut self because hashbag's retain function does not pass you a &mut T - if you want to go this path that may be worth fixing in hashbag, but for now, since we're already in an unsafe context anyway and this was mostly an experiment, I figured I'd just cast the pointer.

It seems I can't leave comments on the commit you posted (or maybe I'm just not pressing the right buttons) - but what's the advantage to passing around DropBehavior types rather than just having a second, otherwise identical type to Aliased (i.e. DropAliased<T>) that is then used in the cast in absorb_second? Does the extra type parameter make a difference from a stability/safety point of view?
~also I keep switching up the words absorb and alias in my head and typing the wrong one and I'm going to miss one at some point and you're going to be confused so sorry in advance~

@MayaWolf It's funny, because that's kind of what evmap used to do. "Back in the day" evmap would explicitly forget values in apply_first, which resembles explicitly dropping values in apply_second: https://github.com/jonhoo/rust-evmap/commit/2f4edc68333f9b3e52c807bf178dd4a1a06ba583#diff-8e31462ea4b11fdadc15fd98e895c1902595d9d34947c58eecca1125a5e6224dL525. I think "opt-in" dropping is better than "opt-out" dropping like evmap did back in the day though!
My main concern with the explicit drop approach is that is requires somewhat careful manual and error-prone work to ensure that everything is dropped correctly, and it's not always the case that the implementations even have the requisite methods to do so safely. For example, I'm not even sure it's okay to drop through a &self even if we're storing the T in a MaybeUninit. And the reason HashBag::retain gives you &T is because HashMap's retain does the same. It used to be that I basically re-implemented retain just to get it to work correctly. I'm also not sure if it's sound to leave behind values where you have dropped the inner T. For example, in this segment: https://github.com/MayaWolf/rust-evmap/commit/268d320058e07ee33cd9a0aa0d99e8f9c64dad4f#diff-8d277c2c886b7c5feed13712789e0be48fcdea4d0f293cf41958df2e93cc1de1R551-R553 you are leaving behind the Ts that have been dropped. It's true that the structure is dropped immediately after, but I don't know if it's actually sound. I think it is, but I also thought the ManuallyDrop transmute was sound :p
I want to stress that I'm not trying to say that explicit drop isn't the way to go. It's probably still preferable to the thread-local magic. I'm more saying that I want to try to push a bit more on my current strategy to see if I can get it "for free".

It seems I can't leave comments on the commit you posted (or maybe I'm just not pressing the right buttons) - but what's the advantage to passing around DropBehavior types rather than just having a second, otherwise identical type to Aliased (i.e. DropAliased<T>) that is then used in the cast in absorb_second? Does the extra type parameter make a difference from a stability/safety point of view?

Ah, yes, it does. Specifically, there has to be no way for any code outside of the current crate to distinguish between the types we are casting between in any way. If we made it be DropAliased, then that type would need to be public since it appears in some public APIs, which in turn would mean that some outside code could distinguish between Aliased and DropAliased since it can name both.

also I keep switching up the words absorb and alias in my head and typing the wrong one and I'm going to miss one at some point and you're going to be confused so sorry in advance

You are not the only one. I keep messing up "absorb" and the old "apply" myself :p

it appears in some public APIs

Does it? It might be public from the point of view of left-right (assuming Aliased is moved into it), but that's just a concurrency primitive after all. But from the point of view of evmap, the only usage of DropAliased would be a cast within absorb_second - it would never need to be exposed, and at that point, the only way for any outside code to gain access to it would be to explicitly use it from left_right and then do an unsafe cast to it. Am I missing anything?

If it's exposed by left-right, then anyone can just pull in left-right as a dependency and implement it that way. In my design above, NoDrop and DoDrop would have to be completely private types, and so would have to live in evmap (though I think Aliased could still live in left-right). So DropAliased would also need to live only in evmap and be private.
Unfortunately, even if you did that, transmuting from Wrapper<Aliased<T>> to Wrapper<DropAliased<T>> would not be sound because Aliased<T> is public, so a sneaky implementor could still implement a trait for Aliased<T> differently from all other types (which would then include DropAliased<T> even though it is not public. We could make Aliased<T> not be public, but then it can't live in left-right. Even if we moved it to evmap, I'm not sure if we could make it private, since it still peeks out in some places like https://github.com/jonhoo/rust-evmap/blob/b6c7a31175b60bf5068d02dde68ad46c61fb7013/evmap/src/read.rs#L211 and https://github.com/jonhoo/rust-evmap/blob/b6c7a31175b60bf5068d02dde68ad46c61fb7013/evmap/src/values.rs#L113-L118
That first one in particular is the one that's causing me headaches with my approach, since it's not clear how to express that bound without naming NoDrop, which has to be private for the reasons above.

Oh, I get it now! So basically, the problem we're trying to work around is that someone might do an impl<T> X for Aliased<T> which would cause the two types to subtly diverge, so both types that we cast between need to be private.
I'll check out your branch tomorrow and see whether I can come up with a solution to the problem you mentioned!

Exactly!
In theory I think the problem is minor, I just haven't been able to wrap my head around how to fix it. We could fix the particular issue with contains_value by simply not supporting the niceties that Borrow gives there, but I don't know how to fix the more general case. There are some places where NoDrop just ends up being visible, such as as the default type for the last generic parameter on Values, and I don't know how to get rid of it from there. Maybe we can pull some shenanigans with impl Trait?

I think what we're going to have to do is define a #[repr(transparent)] newtype around Values that holds a Values<..., NoDrop>, and make sure that all read methods only ever expose that newtype wrapper (and hence never have to publicly expose NoDrop). Then we'd have to modify anything that today returns a Values to return the newtype instead. This may get annoying in places where we return &Values; we'd have to transmute to &PubValues, which I think should be safe.
Now, that doesn't take care of the Aliased<T, U>: Borrow bound, but it should get us a little closer for what remains.

Yeah, I've had another look through it and thought about it, and I agree that this probably needs a second wrapper around Values.I can't really come up with another way that wouldn't end up exposing DropBehavior.

Ah, so, it's not actually a problem to expose the DropBehavior trait. That can be public. It's only the specific types NoDrop and DoDrop that have to be private.

I'm getting real close. NoDrop is still pub at the moment, but it's now only because of of these trait bounds:
https://github.com/jonhoo/rust-evmap/blob/457c109417e8f2e972421131ae1a62ecd9f3d37b/evmap/src/read.rs#L211
https://github.com/jonhoo/rust-evmap/blob/457c109417e8f2e972421131ae1a62ecd9f3d37b/evmap/src/read/read_ref.rs#L154
https://github.com/jonhoo/rust-evmap/blob/457c109417e8f2e972421131ae1a62ecd9f3d37b/evmap/src/values.rs#L112
Unfortunately, I still have no idea how to go about hiding it there except by making it unable to go through Borrow...

Posted on users.r-l.o: https://users.rust-lang.org/t/private-type-in-bound-of-public-method/52375

Huh, well, that was as simple as having NoDrop be a public type but in a private module! Basically the same pattern as sealed traits — neat. So now I think this PR is basically ready to land :o

I've released left-right 0.9.1 with the aliasing module, and evmap 11.0.0-alpha.3 that uses the new (hopefully now sound) aliasing technique!


PrCommand: Minor improvements to the formatting of merged pull requests

Previously even a merged pull request would be colored red

This adds a new field containing when the pull request got merged and who merged it

Nice! Thanks for the PR :blue_heart:


[ENH]: HNSW Replace Deleted flag

Description of changes
Closes #2594
Summarize the changes made by this PR.

New functionality

Added replace deleted flag on index init and when adding items

Test plan
How are these changes tested?

[ ] Tests pass locally with pytest for python, yarn test for js, cargo test for rust

Documentation Changes

#2621  👈
main

This stack of pull requests is managed by Graphite. Learn more about stacking.

Join @tazarov and the rest of your teammates on  Graphite

I think the failing property tests expose some bug in HNSW index, need to dig into that.

The failing property tests expose an easily reproducible bug in HNSW:
import hnswlib
import numpy as np
import random
delete_ids = []
cycles = 2000
vectors = np.random.uniform(-1,1,(cycles*6, 1536)).astype(np.float32)
index = hnswlib.Index(space='l2', dim=1536)
index.init_index(allow_replace_deleted=True, max_elements=501)
index.set_num_threads(1)
for cid in range(cycles):
    if random.random()>0.7 and len(index.get_ids_list()) >0: # we randomly delete ~30% of the time
        ids_to_delete = random.sample(index.get_ids_list(), random.randint(1, len(index.get_ids_list())))
        for id in ids_to_delete:
            if id in delete_ids: # weirdly we also have to check that get_ids_list doesn't return deleted ids
                continue
            index.mark_deleted(id)
            delete_ids.append(id)
    else:
        start_id = index.element_count
        num_vectors_to_add = random.randint(1, 6) #
        va = vectors[start_id:start_id+num_vectors_to_add]
        index.add_items(data=va,ids=range(start_id,start_id+len(va)),num_threads=1,replace_deleted=True)
    if index.element_count>0:
        try:
            res=index.knn_query(vectors[random.sample(index.get_ids_list(),1)[0]],num_threads=1, k=min(len(index.get_ids_list()),10))
            if len(res[0][0])>0:
                for i in res[0][0]:
                    if i in delete_ids:
                        raise Exception(f"Error in cycle {cid}",f"ID: {i}", f"Deleted IDs: {delete_ids}", f"Query Response Labels: {res[0][0].tolist()}",f"All index IDs: {index.get_ids_list()}")
        except Exception as e:
            if "Cannot return" not in str(e):
                print(str(e))
                raise e

This bug exists in both Chroma HNSW and the original HNSW lib.

Some progress about this bug?