b3166db  Breaks seekRange()

Have you read the FAQ and checked for duplicate open issues?
Yes
What version of Shaka Player are you using?
3.1.1 => 3.2.0
Can you reproduce the issue with our latest release version?
Yes 3.2.0
Can you reproduce the issue with the latest code from master?
Yes.
Are you using the demo app or your own custom app?
Custom
If custom app, can you reproduce the issue using our demo app?
Unknown
What browser and OS are you using?
MacOS
For embedded devices (smart TVs, etc.), what model and firmware version are you using?
N/A
What are the manifest and license server URIs?
Not able to send a manifest url since they do timeout after 5 min. If you need anything else just throw me a comment and we might be able to work something out..
(Edit: For the sake of GitHub issues performance, removed 100+kB of inline XML and attached here:
3577.mpd.txt ~JCP)

What configuration are you using?  What is the output of player.getConfiguration()?
{
    "drm": {
        "retryParameters": {
            "maxAttempts": 4,
            "baseDelay": 1000,
            "backoffFactor": 2,
            "fuzzFactor": 1,
            "timeout": 30000,
            "stallTimeout": 5000,
            "connectionTimeout": 10000
        },
        "servers": {
            "com.widevine.alpha": "[redacted]"
        },
        "clearKeys": {},
        "advanced": {},
        "delayLicenseRequestUntilPlayed": false,
        "logLicenseExchange": false,
        "updateExpirationTime": 1,
        "preferredKeySystems": []
    },
    "manifest": {
        "retryParameters": {
            "maxAttempts": 2,
            "baseDelay": 1000,
            "backoffFactor": 2,
            "fuzzFactor": 0.5,
            "timeout": 30000,
            "stallTimeout": 5000,
            "connectionTimeout": 10000
        },
        "availabilityWindowOverride": null,
        "disableAudio": false,
        "disableVideo": false,
        "disableText": false,
        "disableThumbnails": false,
        "defaultPresentationDelay": 0,
        "dash": {
            "clockSyncUri": "https://time.akamai.com/?iso",
            "ignoreDrmInfo": false,
            "disableXlinkProcessing": false,
            "xlinkFailGracefully": false,
            "ignoreMinBufferTime": false,
            "autoCorrectDrift": true,
            "initialSegmentLimit": 1000,
            "ignoreSuggestedPresentationDelay": false,
            "ignoreEmptyAdaptationSet": false,
            "ignoreMaxSegmentDuration": false,
            "keySystemsByURI": {
                "urn:uuid:1077efec-c0b2-4d02-ace3-3c1e52e2fb4b": "org.w3.clearkey",
                "urn:uuid:edef8ba9-79d6-4ace-a3c8-27dcd51d21ed": "com.widevine.alpha",
                "urn:uuid:9a04f079-9840-4286-ab92-e65be0885f95": "com.microsoft.playready",
                "urn:uuid:79f0049a-4098-8642-ab92-e65be0885f95": "com.microsoft.playready",
                "urn:uuid:f239e769-efa3-4850-9c16-a903c6932efb": "com.adobe.primetime"
            }
        },
        "hls": {
            "ignoreTextStreamFailures": false,
            "ignoreImageStreamFailures": false,
            "useFullSegmentsForStartTime": false
        }
    },
    "streaming": {
        "retryParameters": {
            "maxAttempts": 2,
            "baseDelay": 1000,
            "backoffFactor": 2,
            "fuzzFactor": 0.5,
            "timeout": 30000,
            "stallTimeout": 5000,
            "connectionTimeout": 10000
        },
        "rebufferingGoal": 2,
        "bufferingGoal": 10,
        "bufferBehind": 30,
        "ignoreTextStreamFailures": false,
        "alwaysStreamText": true,
        "startAtSegmentBoundary": false,
        "gapDetectionThreshold": 0.1,
        "smallGapLimit": 0.5,
        "jumpLargeGaps": true,
        "durationBackoff": 1,
        "forceTransmuxTS": false,
        "safeSeekOffset": 5,
        "stallEnabled": true,
        "stallThreshold": 1,
        "stallSkip": 0.1,
        "useNativeHlsOnSafari": true,
        "inaccurateManifestTolerance": 2,
        "lowLatencyMode": false,
        "autoLowLatencyMode": false,
        "forceHTTPS": false,
        "preferNativeHls": false,
        "updateIntervalSeconds": 1
    },
    "offline": {
        "usePersistentLicense": true
    },
    "abr": {
        "enabled": true,
        "useNetworkInformation": true,
        "defaultBandwidthEstimate": 5000000,
        "switchInterval": 4,
        "bandwidthUpgradeTarget": 0.85,
        "bandwidthDowngradeTarget": 0.95,
        "restrictions": {
            "minWidth": 0,
            "maxWidth": null,
            "minHeight": 0,
            "maxHeight": null,
            "minPixels": 0,
            "maxPixels": null,
            "minFrameRate": 0,
            "maxFrameRate": null,
            "minBandwidth": 0,
            "maxBandwidth": null
        }
    },
    "preferredAudioLanguage": "",
    "preferredTextLanguage": "",
    "preferredVariantRole": "",
    "preferredTextRole": "",
    "preferredAudioChannelCount": 2,
    "preferredVideoCodecs": [],
    "preferredAudioCodecs": [],
    "preferForcedSubs": false,
    "preferredDecodingAttributes": [],
    "restrictions": {
        "minWidth": 0,
        "maxWidth": null,
        "minHeight": 0,
        "maxHeight": null,
        "minPixels": 0,
        "maxPixels": null,
        "minFrameRate": 0,
        "maxFrameRate": null,
        "minBandwidth": 0,
        "maxBandwidth": null
    },
    "playRangeStart": 0,
    "playRangeEnd": null
}

What did you do?
We calculate the duration from seekRange() end - start for all our streams, including VOD. This now has a big mismatch against video.duration for our VOD manifests (have not tried live). We have DAI being inserted but this has not been an issue with this previously.
We did a git bisect and this commit introduces the issue in master: https://github.com/google/shaka-player/commit/b3166db4bc7cac968a03796bc9c2d7e598fb88c7
What did you expect to happen?
Duration calculation from seekRange to be practically the same as mediaPresentationDuration in the MPD.
What actually happened?
MPD duration is around 2760 seconds. seekRange() end - start is around 2300 seconds. start is 0 in this case.
Did a manual summation of all the Periods in the manifest. The pretty much sum up to the expected duration.

The change that you highlighted causes us to prefer to go with the end time of the last segment, if available, rather than the duration provided in the manifest. If the output of seekRange has become significantly shorter, I suppose that means that some of the segments might be not being counted?
Just to be sure, if you access this variable (while loading the player in debug mode):
player.getManifest().presentationTimeline.maxSegmentEndTime_

Does it report 2300 seconds?

Today's findings:
Me and a colleague both started playing a dynamic manifest at about the same time.
Person 1 start time: Fri, 21 Jan 2022 09:54:28 GMT
Person 2 start time: Fri, 21 Jan 2022 09:53:02 GMT
We started the stream roughly 86 seconds apart.
When the manifest turned static we both got identical manifests, shaka's maxSegmentEndTime, duration and seekRange().end all show 3601.877355. Both of our streams stalled, but at different times:
Person 1 stall time: 3566.986595
Person 2 stall time: 3482.72427
The streams stalled roughly 84.2 seconds apart. Accounting for differing start up times this is suspiciously close to 86.
For a later attempt on a different stream, my colleague got a stall and I didn't. With the same manifest, loaded at roughly the same time.
I get a feeling we're running into a race condition, which may or may not be related to the maxSegmentEndTime_ problem we saw on an earlier shaka version. The root cause still appears to be changes made in shaka 3.1.2.
Since the symptoms now looks unrelated to the exact issue in this particular thread I'll look creating a different issue report once we can dig deeper.

The following change is included yesterday: https://github.com/shaka-project/shaka-player/commit/5c81f3bddb9e48431556f4d622364043fee4ea80
Can you test if it solves your problem?


Rework proxy selection

Fixes #308
Fixes #178

Thanks for this! Since we try to have this interface aligned across SDKs I'll discuss this with the other SDK maintainers first.

@untitaker are there any updates on that?

@crepererum I forgot to start the discussion at the last meeting, sorry. We have a meeting every monday (so, today again) where I will bring this up, but please note that this is quite low-priority for us and we can't force a decision "at gunpoint".

To be clear, I see two versions:

init(http_proxy=False, https_proxy=False)

init(no_proxy=True)

Sorry, we have an update now: Could you use empty string to represent False? We want to port this behavior to other languages and there we can't replicate this type signature.

Done. Build failure seems unrelated (pip doesn't like pyproject.toml and editable installs)

I made a PR: #349

Thanks! I am quite sorry for the dragging response. It's been a few busy weeks.

Released 0.7.12 with this fix (soon)

Has this been already released to PyPI?

@rmk135, yes, 0.7.12 is on pypi. We're on 0.14 right now

and it's in 0.14.4 since yesterday, right?

this was merged in 0.7.12. 0.7.12 is on pypi since april last year. 0.14.4 contains the same change.

Right. Sorry, I got messed up something with something :) Thanks for the help.


Fix sign error in bstar, check neutral conditions, and add more tests

PULL REQUEST
co-authored-by: @akshaysridhar
Purpose and Content

Correct the sign error in compute_bstar. After this change, b* is negative when DSEv_in < DSEv_sfc (unstable). This is inconsistent with the usual convention. But, because we define the obukhov length as u*^2/(κb*), this is consistent if we need the obukhov length to be negative when it is unstable. We may want to change the definition of obukhov length later, but for now it is slightly easier to change the sign in b*, because this only requires one change, and this will be consistent with the current design doc.
Move the check of neutral condition into solve_lmo so that it will not iterate if it is neutral
(Pending, commented out currently) Change NewtonsMethod to SecantMethod, and set the range in of the SecantMethod based on the stable or unstable regime.

Benefits and Risks
(State concisely the benefits to be derived from and the risks associated with this PR)
Linked Issues
(Provide references to any link issues. Use closes #issuenum to automatically close an open issue)

Fixes #
Closes #

PR Checklist

[ ] This PR has a corresponding issue OR is linked to an SDI.
[ ] I have followed CliMA's codebase contribution and style guidelines OR N/A.
[ ] I have followed CliMA's documentation policy.
[ ] I have checked all issues and PRs and I certify that this PR does not duplicate an open PR.
[ ] I linted my code on my local machine prior to submission OR N/A.
[ ] Unit tests are included OR N/A.
[ ] Code used in an integration test OR N/A.
[ ] All tests ran successfully on my local machine OR N/A.
[ ] All classes, modules, and function contain docstrings OR N/A.
[ ] Documentation has been added/updated OR N/A.

bors r+


[Transforms] Fix debug failure caused by merge.

Adds NonNullExpression to isLeftHandSideExpressionKind in utilities.

:+1:

:+1:

This change fixes #8181.

:+1:


doc restructure and tutorials

WIP

simplifying and restructuring top level documentation
move 'repositories' detail into devguide/
rename 'software_architecture' to 'architecture'
combine 'architecture' and feature description documents
establishing tutorials section and moving notes from https://github.com/RackHD/RackHD/tree/master/example into tutorials

resolves #171

@heckj : I see you are directly working on the RackHD/docs repository, not on your personal forked repository. I think this doesn't align with our development guide.

:+1: looks good.

@RackHD/corecommitters @RackHD/doccommitters review please - updated per early feedback, validated the sequences, and I think it's ready to merge once https://github.com/RackHD/RackHD/pull/340 gets merged

👍 seems like the jq update resolves @yyscamper's comments re: jq .


Please add an option to disable RDNSS in radvd

[x] I have read the contributing guide lines at https://github.com/opnsense/core/blob/master/CONTRIBUTING.md
[x] I have searched the existing issues and I'm convinced that mine is new.
I found #4087, but it has been closed without comment
Is your feature request related to a problem? Please describe.
There are some cases where one does not want to have DNS Servers assigned via SLAAC
Describe the solution you'd like
I know, it is against the RFCs, but radvd itself allows it not to advertise DNS Servers. There can be some conditions where such a behaviour is desired. I just found out, that pfsense already implemented this:
https://redmine.pfsense.org/issues/9302
https://github.com/pfsense/pfsense/commit/e26ad76e8fd9b947f2ad97195d2153da14d8c594
It would be great to have this as well in opnsense!

I've quickly done this in commit #4571 , Try it with opnsense-patch d692980 , let us know how you get on. The patch can be reversed by issuing the same command again.

I've quickly done this in commit #4571 , Try it with opnsense-patch d692980 , let us know how you get on. The patch can be reversed by issuing the same command again.

Due to a moment of idiocy I put the config in dhcpv6 and not Router Advertisements. I have not corrected that and the patch is now  e3a9fce

Due to a moment of idiocy I put the config in dhcpv6 and not Router Advertisements. I have not corrected that and the patch is now  e3a9fce

Sorry for the late reply. Thanks @marjohn56, your patch is looking good here :)

Sorry for the late reply. Thanks @marjohn56, your patch is looking good here :)

There was an issue with the code (old var still used in dhcpd.inc) so I manually pushed 8ded045. Thanks ❤

There was an issue with the code (old var still used in dhcpd.inc) so I manually pushed 8ded045. Thanks ❤


React Native Picker shows ghost picked value

I'm using the default react native picker on Android, and some values's color are randomly changed as i scroll.
Note that this bug is only visual, selected values are working fine.
React Native version:
System:
    OS: Linux 4.15 Ubuntu 18.04.2 LTS (Bionic Beaver)
    CPU: (4) x64 Intel(R) Core(TM) i7-6500U CPU @ 2.50GHz
    Memory: 1.11 GB / 7.67 GB
    Shell: 5.4.2 - /usr/bin/zsh
  Binaries:
    Node: 8.10.0 - /usr/bin/node
    npm: 3.5.2 - /usr/bin/npm
  SDKs:
    Android SDK:
      API Levels: 22, 23, 26, 27, 28
      Build Tools: 23.0.1, 27.0.3, 28.0.3
      System Images: android-27 | Google APIs Intel x86 Atom, android-28 | Google APIs Intel x86 Atom
  npmPackages:
    react: 16.8.6 => 16.8.6
    react-native: 0.60.0 => 0.60.0
  npmGlobalPackages:
    react-native-cli: 2.0.1
    react-native-debugger: 1.1.0
    react-native: 0.59.3

Steps To Reproduce
use the Picker component from react native on android,
put more items in it than your screen can contain,
scroll back and forth a few times and some values should be greyed out
Describe what you expected to happen:
I need the component not to randomly change some colors as i scroll
Snack, code example, or link to a repository:
Gif demo: https://i.imgur.com/bDQov0K.gif
Snack exemple: https://snack.expo.io/rJNN1JKeB
Stack issue: https://stackoverflow.com/questions/56853193/react-native-picker-show-ghost-picked-value

Hello @Aiiros I submitted a fix for this problem. You and others are welcome to take a look and add comments/suggestions.
Please see it in here: https://github.com/facebook/react-native/pull/25750


routing: use updated sphinx.NewOnionPacket method

In this PR, we update the routing package to use the new
sphinx.NewOnionPacket method. The new version of this method allows us
to specify how the packet should be filled before it's used to create
a mix-header. This isn't a fundamental change (totally backwards
compatible), instead it plugs a privacy leak that may have revealed to
the destination how long the true route was.

There's some weirdness with modules: the new tag is pushed, the go.sum+go.mod were updated, but compilation doesn't work for me locally....
If I pin it to the latest commit hash instead, then things work. Perhaps their crawler just needs more time to pick up the latest tag?

It seems the tag isn't on the latest commit. It is on f34e9dc while this pr needs 25954be99ab05ad18ae745a00f81f271ae3590c4

Figured out the issue with the tag, should be updated properly and build now.


[PROPOSAL] New Microsoft.Bot.Builder.Testing project containing all tests-related classes

Taking into account the following issues:

TestAdapter does not provide proper assertions. Instead, it uses a combination of ifs and exceptions.
TranscriptUtilities depends on MSTests's TestContext to retrieve Transcript files following a naming convention. This is in part the reason which it is part of the test project.
The .chat-to-.transcript-to-Activities conversion logic is implemented as part of the TranscriptUtilities component.

Current disposition of tests-related classes

We propose moving the TestAdapter and TestFlow classes to a new project called Microsoft.Bot.Builder.Testing. Also, extract the .chat-to-.transcript-to-Activities logic from TranscriptUtilities and place it in the same package. Using this approach, all tests-related classes will belong to a single NuGet package.

This sounds reasonable, and certainly removing the TestAdapter and related code from the core BotBuilder assembly would be a win. I'm a bit concerned about having "Yet Another" assembly though.
@johnataylor, @drub0y, @tomlm, @Stevenic

Closing as part of R10 triage.


Home Teleport Timer does not work in Twisted League

This will be due to it using a new animation

I've tried using the home teleport in the TL league and it seems to be working fine for me.


fix mergeAndOwn and error status report

Signed-off-by: Roke Jung<EMAIL_ADDRESS>https://github.com/stolostron/backlog/issues/20167

/lgtm


Explore remote type hack

Quick thought: could (ab)use protocols to create remote types for datatypes. Not sure if the following formulation would work, but may be interesting to explore.
defprotocol Algae.Maybe do
  @type t :: Just.t | Nothing.t

  defmodule Just do
    defstruct [:just]
  end

  defmodule Nothing do
    defstruct []
  end
end

defimpl Witchcraft.Functor, for Algae.Maybe do
  def lift(%Algae.Maybe.Just{just: a}, fun), do: %Algae.Maybe.Just{just: (a |> fun)}
  def lift(nothing, _), do: nothing
end

Nope


WMS 6742 - OCW23 Sandbox and Tenancy Changes

Add here your WMS ID
General requirements

Information in the workshop is adequate and updated
Code is correct and working
Links are correct
Make sure you enter the help email link in your manifest.json
Please make sure WMS URLs are updated as needed after your PR is approved

Checklist - Refer to the QA document for the complete list
Please confirm that the following is completed before submitting your PR

[ ] All filenames are lower case (including folders, images, files, etc.)
[ ] Filenames are descriptive
[ ] Your workshop folder structure should be similar to the one used in the sample workshop (https://github.com/oracle-livelabs/common/tree/main/sample-livelabs-templates/sample-workshop)
[ ] Are you using multiple versions (desktop/, sandbox/, tenancy/)? Make sure that each of them contains a manifest.json and an index.html
[ ] Image references in markdown contain an alternate text

Hi Kaylien,
This project was from last year. I did not add anything now. Can we have a brief chat to discuss about this issue.
From: Kaylien Phan @.>
Date: Monday, June 5, 2023 at 5:58 PM
To: oracle-livelabs/developer @.>
Cc: Bala Vellanki @.>, Mention @.>
Subject: [External] : Re: [oracle-livelabs/developer] WMS 6742 - OCW23 Sandbox and Tenancy Changes (PR #177)
@kaylien requested changes on this pull request.
Hi @bkvellankihttps://urldefense.com/v3/__https:/github.com/bkvellanki__;!!ACWV5N9M2RV99hQ!JgWVjLdGPQ0Nq7aQtOPT2ARP64WNMdoXf7N467fjP6-dNX4s9VqBYkAUtvtunEsfD7eMZPBy3cCGiI-tjgdMUJGmcsQ$,
We don't allow the upload of SQL files into our Github repos. Please remove them from your PR and then instead, email them to @livelabs-help-db_us so that we can create an object storage PAR link for them that you can refer to in your workshop.
Thanks!
Best,
Kaylien
—
Reply to this email directly, view it on GitHubhttps://urldefense.com/v3/__https:/github.com/oracle-livelabs/developer/pull/177*pullrequestreview-1463696473__;Iw!!ACWV5N9M2RV99hQ!JgWVjLdGPQ0Nq7aQtOPT2ARP64WNMdoXf7N467fjP6-dNX4s9VqBYkAUtvtunEsfD7eMZPBy3cCGiI-tjgdM1gFvZbU$, or unsubscribehttps://urldefense.com/v3/__https:/github.com/notifications/unsubscribe-auth/AAHCUILEDEHKPETEXHWSVY3XJZP7BANCNFSM6AAAAAAY3PJLGA__;!!ACWV5N9M2RV99hQ!JgWVjLdGPQ0Nq7aQtOPT2ARP64WNMdoXf7N467fjP6-dNX4s9VqBYkAUtvtunEsfD7eMZPBy3cCGiI-tjgdMci0oUTQ$.
You are receiving this because you were mentioned.Message ID: @.***>


GDPR and BDSG compliance not given on Homepage of Corona Warn App

Homepage: https://www.bundesregierung.de/breg-de/themen/corona-warn-app/corona-warn-app-englisch
I am sure this issue is wrongly placed here - on the other hand I hope this is the short way; I just tried for an hour to figure out who is responsible for the homepage, but as so often in Germany, no one seems to be responsible.
Where to find the issue
https://www.bundesregierung.de/breg-de/themen/corona-warn-app/corona-warn-app-englisch
Describe the issue
There are social network icons wrongly placed on the homepage which do ! send referrer information to its owners, here twitter, facebook, instagram and youtube, also they definitely transfer the visitors IP on the social networks servers, ready for analysis..
It shouldn't be news that this wasn't nor isn't allowed under BDSG nor GDPR and its predecessors.

I think, in times were we discuss months about data security regarding our Corona Warn App, such a (minor) flaw shouldn't happen. Nor should it start a new discussion like 'if they do not protect data here, how should this be the case for the app... Alu heads even might find this good for a new 'the theory'...
At least, it seems as if the icons are not downloaded directly from facebook & co, but still, the information given about the "consequences" by clicking them is in this form not right.
Suggested change
2014, 6 years ago, heise.de started a project c't shariff that handles this issue (btw. that was two years before GDPR ;).
I suggest to implement the  current version of this project or similar projects, of which you can easily find several.

Yeah definitely wrong here. Tried Impressum? Surely there's a webmaster. Not that they will do anything about it.
It would help if you linked supporting evidence for your claim that "These social buttons have to be explicit turned on by a user and the user must explicitly accept this before the buttons are activated."

You could try a mail to the person responsible for data security (datenschutzbeauftragte@bpa.bund.de).

Yep, please use the respective channels for the page (e.g., the mail from the imprint). Since the coronawarn.app site hopefully does not have these issues, I'll close that ticket.


Optimize encoder to set position to 0 to make it more accurate

May or may not need to do this, consider more of an optimization

considering lower priority for now


libc++ >=16 compatibility

Checklist

[ ] Used a personal fork of the feedstock to propose changes
[ ] Bumped the build number (if the version is unchanged)
[ ] Reset the build number to 0 (if the version changed)
[ ] Re-rendered with the latest conda-smithy (Use the phrase @conda-forge-admin, please rerender in a comment in this PR for automated rerendering)
[ ] Ensured the license file is being packaged.

@isuruf since #41 has been merged, can this one be closed?

Yes


Global Security Vulnerability Summit

The CNCF is hosting a Global Security Vulnerability Summit at the Open Source Summit
https://events.linuxfoundation.org/open-source-summit-north-america/
Let's use this issue to track how the GSD plans to interact with this summit. There will be a CFP at some point in the future.
Planning to attend

Josh Bressers (Anchore)

Possible presentations

I plan on attending as well.

The GSVS has already happened, closing.


add scala-collection-compat

fyi @szeiger @julienrf

[info] Project scala-collection-compat-----: SUCCESS (project rebuilt ok)
...
Lines of Scala code recompiled during this run only:
      279 scala-collection-compat
      279 TOTAL


samAssembler Part 3: Haploid Call From Pileup

This PR introduces the third piece of the samAssembler program - haploid base and INDEL calls from pileups using the same  Bayesian framework used to evaluate diploid calls.
Consider a diploid organism with the following sequence:

ref
ACTACAGACCAGTA
PaternalChrom
ACTAC----CAGTA
MaternalChrom
ACTACAGTCCAGTA
In the sequence above, the individual has a deletion on the paternal chrom, and a substitution on the maternal chrom that falls within the deletion. In order to successfully call these complex genotypes, once we identify a heterozygous deletion, we need to make haploid variant calls on the other strand for the duration of the deletion.
The mathematical details of this PR are explained in the doc attached below.
samAssembly.pdf

It seems two of the files were from samAssembler part 2 (the diploid INDEL files). It looks like the part 2 PR merged into the part1 branch, not into main. If we merge this branch into main, everything will wind up resolved

The one thing I'll add is perhaps in the future when designing the tests to try to come up with examples that cover more if/else statement logic in your code. The codecov does a decent job of flagging which lines aren't covered by your tests so that can help improve some of the test cases!


⚠ MorethanTV has degraded performance

In 158c06f, MorethanTV ($MTV) experienced degraded performance:

HTTP code: 200
Response time: 18671 ms

Resolved: MorethanTV performance has improved in 37d6ebf after 6 minutes.


C209 Tag doesn't work :(

Hi, this is Michael.
Now I want to use C209 aoa tag, but it doesn't work.
I want to build and flash it.
However, I can't. :(
I uploaded the post 10days ago, no one answered.
https://portal.u-blox.com/s/question/0D52p0000BOI7UxCQL/xplraoa-explorer-kits-c209-tags-software-and-flashing
I don't have a bad intention.
Is there anybody who can help tag work?
Please help me!

When I builded with command line (nRF Connect SDK v1.5.0 and Open bash'

I did like this. What was the problem?

Hi, the root folder is the cloned repository at the top level, so I think that is why you have problems building. When running west build -b ubx_evkninab4_nrf52833 you need to be in the folder c209-aoa-tag-master in your case.
Also if you don't want to compile you can download pre-compiled FW here: https://github.com/u-blox/c209-aoa-tag/releases

Thank you, jakkra.
I changed my root folder from wrong folder to 'c209-aoa-tag'.
'west build -b ubx_evkninab4_nrf52833' command works well.
But 'west flash' doesn't work like this photo.

Therefore, I chose the second method 'Download pre-compiled FW'.
When I ran this command 'nrfutil dfu serial -pkg app.zip -p COM8 115200 -fc 1', there was error.

Is there any solution?
I'm sorry to bother you.

Hi,
It could be that you have this port open in another program, like a terminal emulator or similar?

Thank you for your fast response.
I checked it one more time, and all program was closed.

If I connect the other board like nrf52840-DK, command 'pyocd list' worked and it showed me the information of the board.
However, I didn't know the information of this tag if I connected it to desktop.

In my case, it was hard to flash by using usb cable, I used 10-pins debugger port.
I think it works, now.
If you are okay, could you let me know how to flash by using usb port instead of 10-pin debugger port?
Thank you so much.

Could I ask one more thing?
I flashed the c209 tag as I told you, and then I checked that c211's array led were blinky.
That's why I thought that the tag and anchor node works very well.
Also, I checked the Anchor node's response when I put the Anchor node AT commands  by using 's-center'.
However, when I put the c209 AT command by using 's-center', there is no response like 'OK' or 'Error'
For example, I want to change the power of tx (c209 tag) therefore I put the AT command ('AT+TXPWR=0'), but no answer!
I'm not sure, but I guess that two situation (1. USB port doesn't work when I flashed the c209 tag, 2. c209 tag AT command doesn't work)  came from same excuse, doesn't it?

There should be no flow control when sending AT commands to the C209 tag. Also AT interface is only availible for about 10 seconds after reset of the tag (to save battery) so you need to send AT to the C209 tag within 10s after reset, after any AT command sent the C209 tag will keep UART open for AT commands.
By the way I tested the nrf52840-DK setup you have and got it working when I put the 10 pin cable in the DK "Debug in" and not the "Debug out".

For your problem with flashing using nrfutil :

First you need to re-flash the bootloader as you probably overwrite it when flashing the application using the debugger. It's on the start of this section how to do it: (https://github.com/u-blox/c209-aoa-tag#building-the-application-to-use-with-opencpu-dfu-bootloader)
Then when bootloader is flashed you will be able to again flash the pre-compiled application found under releases.
Looking at the error message you got from nrfutilI still think the COM port was already opened in Windows due to "access denied" for COM8. So double check one more time in device manager that the C209 tag really has COM8 and also make sure no program has the port opened.

Thank you for fast response.
I checked that c209 tag AT command works very well! :)
And I will follow your advice, and I will let you know if there is progress.
Thank you soooo much! :)


Update tofu-env to 0.10.1

Updates tf.tofu:tofu-env from 0.10.0 to 0.10.1.
GitHub Release Notes - Version Diff
I'll automatically update this PR to resolve conflicts as long as you don't change it yourself.
If you'd like to skip this version, you can just close this PR. If you have any feedback, just mention me in the comments below.
Configure Scala Steward for your repository with a .scala-steward.conf file.
Have a fantastic day writing Scala!

Files still referring to the old version number
The following files still refer to the old version number (0.10.0).
You might want to review and update them manually.
examples/project/plugins.sbt
project/plugins.sbt

Ignore future updates
Add this to your .scala-steward.conf file to ignore future updates of this dependency:
updates.ignore = [ { groupId = "tf.tofu", artifactId = "tofu-env" } ]

labels: library-update, semver-patch, old-version-remains

Superseded by #566.


BUG: coin_info0 is missing from API and no longer showing

From @jamie088: coin_info0 was in api result until yesterday but we can't this from a few hours ago. We NEED this for Curvebot to function for mybots page.
It appears that it was removed in this PR update: https://github.com/VolumeFi/bot-info-api/commit/24067000bc0be9cc26e20b2378081d4323356aa6#diff-e727e4bdf3657fd1d798edcd6b099d6e092f8573cba266154583a746bba0f346L179

Fixed with https://github.com/VolumeFi/palomabot/pull/370


Multi instance for clickhouse-mysql

Hi,
Currently clickhouse-mysql utility works as a service with one instance only (can handle only one mysql table).
We need to have the possibility to define more than one instance in the config file so the service will be able to sync multiple tables.

This issue is planned for implementation. Hope to provide some updates rather soon

Hello @sunsingerus,
Thanks for DataReader Utility  ^^
btw, do you have any update for this issue?


Landing Page Branch Edits

Not-yet-ready Edits for the landing page branch.

Specific Notes for later:

This is missing hover color.
More than 6 is too many, either 3 or 6 exactly
The detail is too much here. They are docs-level, not everyone will understand

https://sanic.dev/en/, https://www.djangoproject.com/, https://nestjs.com are simple for example
https://nextjs.org/ does the in-depth thing, and it works, but maybe we can make it more concise and user-readable?

Of the three I dont know which to chose of the 2 on-brand colored ones. I think I need to see it with a theme switcher to see both light/dark versions.
Needs icons

This felt pretty bare, removed BG from pre in the code to make it not bad.
Added back bottom button, the other one could be added back too. it looks nice and doesnt have to be purely for utility, just a snazzy thing. it is a landing page after all 😄

General Notes for later:

Move grays to brand colors, both in light and dark themes.
Add theme switcher
Add icons

This is missing hover color.

Specifically where? On the titles?

More than 6 is too many, either 3 or 6 exactly
The detail is too much here. They are docs-level, not everyone will understand

Well I was planning on adding even more. 9 or 12 in total. The current ones are kinda just placeholders, the text was never meant to be final. I'm planning to cover that today. I'll let you know when I've got something and then you can tell me what you think.

https://nextjs.org/ does the in-depth thing, and it works, but maybe we can make it more concise and user-readable?

I was going for that, yes. But I guess it does need to be a bit higher level. Will keep that in mind.

Needs icons

Well.. I tried coming up with some but failed. Very open to suggestions here :grimacing:

Move grays to brand colors, both in light and dark themes.

I am somewhat opposed to this. As it is now, it looks quite clean, and I think our branding colours are best used as accents. But maybe we can get some more opinions on this?
On that note, did you check the update I pushed to our docs? I updated the dark theme there as well. Looks way better to me now, even though it uses less brand colours.


 The compiler needed some null checks. It looks like the editor was nicely inserting the hProperties when it had a 'full' image, but not when it was in a table.
🧬 QA & Testing

Broken on production.
Working in this PR app.

This PR was released!
🚀 Changes included in v6.39.4


Update to XF 3.5

The following list shows which are missing right now. Will work on this the next days.
The questionmark behind few classes there I do not know if they are needed.
Interfaces, enums, abstract classes and static classes are not included.
I think that the Attributes and EventArgs do not need to be included, too ???
@TimLariviere could you maybe provide me with some hints for the classes below and the question above? I appreciate your help!

[x] BaseShellItem
[x] CarouselView
[x] CollectionView
[x] ItemsView
ScrolledToRequest
ScrollTo
[x] ListItemsLayout - not needed?
[x] MenuShellItem - not needed?
[x] SearchHandler:
ItemsSource
ItemTemplate
OnClearPlaceholderClicked
OnItemSelected
OnQueryChanged
OnQueryConfirmed
[x] SelectableItemsView
[x] Shell
GoToAsync
[x] ShellContent
[x] ShellGroupItem
[x] ShellItem
[x] ShellNavigationState
[x] ShellSection

fix #329
Differences:
https://www.fuget.org/packages/Xamarin.Forms/<IP_ADDRESS>452/lib/netstandard2.0/diff/<IP_ADDRESS>9999/

I think that the Attributes and EventArgs do not need to be included, too ???

Yes, if we can reuse the existing classes, we do.
EventArgs are only a "bag" of data, so no need to wrap it in Fabulous.
Attributes as well, it's more related to making custom controls which is not something that concern Fabulous.

I didn't had time to check XF 3.5 in details.
But I can say that we are only interested in actual controls, there's no need to wrap things like MenuItemCollection, NavigableElement, etc.

Great! Thanks for your feedback :)!

I think i got everything...

@SergejDK Do you know why CollectionView/CarouselView/Shell are in XF 3.5?
Everything I read about them is about Xamarin.Forms 4.0 Preview

They are already in 3.5 but only allowed to use when setting: global::Xamarin.Forms.Forms.SetFlags("Shell_Experimental");
https://docs.microsoft.com/de-de/xamarin/xamarin-forms/app-fundamentals/shell?tabs=android
The question why it is in 3.5 I think because of earlier feedback from the devs.

BONUS: Keep in mind that 3.5.0 also contains previews of other new features that the Xamarin team is currently developing,. We look forward to receiving your feedback on Shell, Visual, CollectionView, and CarouselView. As you explore these features, please take a moment to share with us your thoughts here.

https://blog.xamarin.com/5-things-youll-love-xamarin-forms-3-5/

@TimLariviere the fail on travis - is it the error where it only needs to rerun?

Seems like it.
For some reasons, it failed to download Xamarin.Forms.
Will retrigger the CI

@TimLariviere
Any other ideas? Most times the error goes away when rerun but right now not...
Maybe I missed a dependency?

Apparently they changed their targeting framework with Xamarin.Forms 3.5.
In XF <= 3.4, Xamarin.Android was using the folder MonoAndroid10
But now, it's using either MonoAndroid81 or MonoAndroid90

So the links in both the samples app and the templates are no longer valid.
For example:
<Reference Include="Xamarin.Forms.Core">
    <HintPath>..\packages/Xamarin.Forms.XamarinFormsSdk/lib/MonoAndroid10/Xamarin.Forms.Core.dll</HintPath>
</Reference>

will become
<Reference Include="Xamarin.Forms.Core">
    <HintPath>..\packages/Xamarin.Forms.XamarinFormsSdk/lib/MonoAndroid90/Xamarin.Forms.Core.dll</HintPath>
</Reference>

Thanks for looking into it! Could not do it when I was at work...
Will change it.

Could you add an example of how to use the new controls in the AllControls samples?

Would it not be better to have a project for shell and not include it in AllControls?
I think the AllControls will be hard to read if we add everything in it.
And with the Shell it mabye easier to work on: #242

I think we should still add the new controls to AllControls, it's more a smoke test than a sample anymore. That way, we can check the new controls are working and we don't break them later.
Though indeed, Shell would be easier to use in a new project and provides a good structure for new samples.

I will add simple parts in the allcontrols.

Thanks!

Existing iOS and Android applications can adopt Shell and benefit immediately from navigation, performance, and extensibility improvements.

Because Shell seems to be only available on Android and iOS I have to ask for the platform. This is just a note that you won't be suprised about the addition to ask for android and ios.

And if I am right I made more work than I had to do... I think I can delete the BaseShellItem?

@TimLariviere could you test on Android and iOS for the ShellView?
I kinda run in a very interesting issue... on iOS I get a Parameter can not be null Exception.
On Android I get no exception but it does not display the content.
Will take a closer look tomorrow/today. This could be a problem of XF but I think I messed something up when I included the ItemsProperty.

I did definetly messed up the updateCode because on Android I tested with the TicTacToe and it is rendered completely wrong.

@TimLariviere
I think for shell we do truly need a project because we need to use sth like.
FormsAppCompatActivity.TabLayoutResource <- TicTacToe.Droid.Resources.Layout.Tabbar
FormsAppCompatActivity.ToolbarResource <- TicTacToe.Droid.Resources.Layout.Toolbar

Else it should give an error.

If I am correct then there is only CarouselView/CollectionView and maybe searchhandler to make examples in allcontrols?

Last thing: I am still trying to figure out what is wrong with the items updateCode. If you have any hint I would appreciate it!!

And if I am right I made more work than I had to do... I think I can delete the BaseShellItem?

Yes, I think you're right.
Some "abstract" controls don't need to be exposed in Fabulous. We only want to expose those we can use directly.

If I am correct then there is only CarouselView/CollectionView to make examples in allcontrols?

Yes, there seems to be only 3 new controls: Shell, CarouselView and CollectionView.
The others are more generic controls that serve as a base for those 3.

Added examples for carousel and collectionview but I think there is something wrong.
If I try to add sth. like View.Label in the itemssource property it won't render.
So here I think I need to overwrite it somehow in the members or is there another way?

@SergejDK The ItemsSource property on ItemsView (inherited by Carousel and CollectionView) is not enough for Fabulous. ViewElement won't render itself by default.
You need to do something like the ListView does:

Create a data holder with PropertyChanged support
https://github.com/fsprojects/Fabulous/blob/1c435ccc61d58efb6820706bce56c24e68b00a28/src/Fabulous.Core/ViewConverters.fs#L27-L41
Create a custom made control which will be responsible of rendering the related ViewElement
https://github.com/fsprojects/Fabulous/blob/1c435ccc61d58efb6820706bce56c24e68b00a28/src/Fabulous.Core/ViewConverters.fs#L70-L112
Create a custom CarouselView/CollectionView initialized with a DataTemplate of the new control (which is responsible for rendering the ViewElement)
https://github.com/fsprojects/Fabulous/blob/1c435ccc61d58efb6820706bce56c24e68b00a28/src/Fabulous.Core/ViewConverters.fs#L114-L116
And finally, tell the Generator you want to instantiate your custom control whenever you call View.Carousel/View.CollectionView
https://github.com/fsprojects/Fabulous/blob/1c435ccc61d58efb6820706bce56c24e68b00a28/tools/Generator/Xamarin.Forms.Core.json#L1804-L1814

That way, when you add a View.Label in the ItemsSource property, Fabulous will wrap it in a ItemsViewElementData (1st step) and add it to the actual ItemsSource property.
Then when displaying, the Carousel/CollectionView will call ItemsViewItem to handle the rendering of the ItemsViewElementData.

@TimLariviere great explanation! Thanks!
As far as I see I can nearly copy everything except changing some names and inherited classes. Am I right?
-- Tried it that way but I get an InvalidCastException. Currently I am searching where this happens

As far as I see I can nearly copy everything except changing some names and inherited classes. Am I right?

Yes, it should mostly work as-is.
Just watch out for inherit ViewCell(), Carousel/CollectionView might not use this class for templating.

It seems like everythign can be used.
https://blog.xamarin.com/xamarin-forms-4-0-feature-preview-an-entirely-new-point-of-collectionview/
So maybe inherit from view directly?  The difference to ListView is that listview uses ItemsView<Cell> but Collection/Carousel uses ItemsView class.

So maybe inherit from view directly?

@SergejDK You can inherit from ContentView and append the ViewElement's control to the Content property.

Seems to work but it does not display anything. It gets created correctly though...

The Labels seems to be created but not shown in the ui:

Is there still sth. wrong within ItemViewElementCell?
No Exception - nothing to check... Any hint on this?

Got time again.
Very interesting...
CollectionView on iOS is working on Android not.
CarouselView does not work. Will take a deeper look

@TimLariviere
if I get it right the CarouselView for iOS is not implemented in XF3.5: https://github.com/xamarin/Xamarin.Forms/issues/5488
So this won't work no matter how much effort I put into it.
will test for android part.

@TimLariviere
it can be that with further updates maybe to 3.6/4.0 the issue won't be there anymore.
So maybe it is okay to merge here even though the examples for the 3 parts are currently not working.
For those example we can open each issue and work on the updates so we can catch up there and afterwards test the examples again.
What do you think?

@SergejDK Alright.
As those controls are preview only in XF 3.5, I think we can merge this PR for now and fix them once they're fully available (likely with XF 4.0).
I'll add a note for these controls in the docs saying that while we provide an initial support, there may be some issues with them.

@TimLariviere
Great Job! Thanks for keeping up with the work!

@TimLariviere
I think it is the normal problem where we need to restart the build on travis?

@SergejDK Thank you for your work in this long running PR. :)
I'm merging this now.
This evening I'll be releasing this in a new version on NuGet.

@TimLariviere
always happy to help :)
I think everyone is waiting for the release
what do you think about making the step to 3.6 ? Maybe I can make it before evening and you could release it with 3.6?

what do you think about making the step to 3.6 ? Maybe I can make it before evening and you could release it with 3.6?

That would be awesome!


Concurrent Key Press Reacts

Hi~
The second problem was one of the plugin working problem.
The plugin, in short, provides jk (almost concurrent pressing down, in insert mode) map to Esc, and the map function provides here.
Is there any methods in this call that Vide does not support? Cause this plugin with the function does not work well.
^_^

Very weird. I use a keyboard macro to achieve this functionality on my setup. Let me look into it.

Hi,
I noticed the same problem when pressing several keys simultaneously. For example, if I press a, s, d, and f at almost the same time, only 1 or 2 of those letters will register. It really has to be simultaneous to do that though; if they are done consecutively, all of them register.

This is fixed with the move back to winit.


Third party plugin cleanup: Kong Google Cloud Logging plugin

Description
Removing the Kong Google Cloud Logging plugin by SmartParkingTechnology as part of the third-party plugin cleanup initiative.
Testing instructions
Netlify link:
Checklist

[x] Review label added
[x] PR pointed to correct branch (main for immediate publishing, or a release branch: e.g. release/gateway-3.2, release/deck-1.17)

@clemens-smartparking Thank you for your support and contributions to the Kong Plugin Hub. At this time, Kong will only be maintaining plugin listings for verified partners. This means we will no longer maintain entries of custom plugins from community or individual contributors.
We are removing the listing for the Kong Google Cloud Logging plugin, as it is not currently part of any technical partnership agreement with Kong.
If you would like to have your plugin featured on the Kong Plugin Hub in the future, we encourage you to become a Kong Partner.


Feat: Adding Hover to the Home button on nav Bar

Describe the feature
we can add a green hover on the home button on the nav bar. Please let me finish this easy task as it will contribute to my  gssoc'24 journey.
Add ScreenShots

Record

[X] I agree to follow this project's Code of Conduct
[X] I'm a GSSOC'24 contributor
[X] I want to work on this issue

hi please assign this issue to me as i'll quickly finish it and it'll be helpful for my gssoc'24 journey

This issue is already assigned.


Linked List Algorithm Implementations

Algorithm: Linked list Implementations
DS: Linked List
Languages Supported: CPP, Python

I would like to add all the implementations of Linked List algorithms in CPP and python.

@Abhijit2505 It would be better if you create individual issues for different implementations.

Should I close this issue @atarax665 ?

@Abhijit2505 Yeah.

@Abhijit2505 Yeah, create a new issues. I will be assigning you the issues there.


Clarify behaviour of shim without ENVOY_ADMIN_API

I wasn't sure if this app would make local dev harder, which made me hesitate before adopting it.  After reading #1, i realised it was well-designed 😉
This is a small rewording of the README to clarify how it behaves.

Thanks!


Wrong colors in base16_flat theme

I noticed that 6d3710e completely changed the colors I used to have in base16_flat theme. Colors used to be like this:

Now they look like this:

Is there any configuration option I can set to get the original colors back?

Am 2016-03-01 14:19, schrieb Andriy Yurchuk:

I noticed that 6d3710e [1] completely changed the colors I used to
have in base16_flat theme. Colors used to be like this:
[2]
Now they look like this:
[3]
Is there any configuration option I can set to get the original colors
back?

I think there was no base16-flat theme before. Try using the default
base16 theme.

Indeed executing :AirlineTheme base16 I get the colors I used to have. What exactly do I need to put in my vimrc to make it persistent?

let g:airline_theme='base16' is the line that should be put in vimrc.


Disable/Enable Emmet Command

I have Emmet enabled for more than html files and it gets in the way more often than not. It is always the top suggestion (as it should, I like that) in order to write custom tags. To only enable it when I am going to write html/pug/jsx.. code and maybe toggle it with a keyboard shortcut would be great.
"emmet.includeLanguages": {
    "javascript": "javascriptreact",
    "vue": "jade"
  },

@smhmd is your goal to add an Emmet command to disable expansion suggestions?

@rzhao271 When I used pug inside vue files, Emmet suggestions popped up everywhere. I haven't used pug in well over a year, and I don't think the solution I proposed here would have solves the issue right at its root.

Reminds me a bit of https://github.com/microsoft/vscode/issues/51537
Thanks for the feedback


WIP: Leverage cudf conditional nested loop join to implement semi/anti hash join with condition

Signed-off-by: Jim Brennan<EMAIL_ADDRESS>Closes #4309
This is an experiment to see if replacing conditional hash joins that currently run on the cpu with conditional nested loop joins that run on the gpu will result in an overall performance improvement for tpc-ds queries, or at least to provide evidence that this improves some queries.   Note that CUDF team is working on adding support for conditional hash joins, which would be a better solution in the long run.
This initial commit only has the conversion for GpuBroadcastHashJoin -> GpuBroadcastNestedLoopJoin.  Support for the others (GpuShuffledHashJoin and GpuSortMergeJoin) will be added in later commits.

build

Running q72 with this patch on my desktop at a scale of 10GB was 61x slower than without.  So using conditional nested loop joins in place of the existing hash-join-with-post-filter makes q72 61x slower.   On my desktop the query time went from 29 seconds to 1789 seconds with the patch.
So this experiment successfully showed that replacing hash-join-with-filter with a conditional nested loop join is not a good idea for q72.  Fortunately, it looks like this cudf change: https://github.com/rapidsai/cudf/pull/9917 will make this unnecessary.
@jlowe, @abellina are there other situations where we think this substitution might be useful?

Given how slow this was for inner joins, it seems very unlikely this will be a good idea even for semi/anti joins that currently fallback to the CPU.  We'd have to see a significant performance improvement in libcudf nested loop join first, so I'm OK with closing this for now.


How to run queries synchronously?

Hey there;
I'd like to be able to run some queries synchronously. Is there a way to do so?
In it's simplest form, I'd like to call db.query and get an array of records back in a blocking manner.
e.g
// the following is not how db.query works. It's how I'd *like* it to work sometimes
var rows = db.query('SELECT * FROM test');
console.log(rows)
// this would print an array of records to the console.

Is this possible?  I'd like to do it for inserts, and deletes as well. Thanks!

Why not just offer the developers a synchronous option?

But I'm not sure it's even possible to implement a querySync method since dblite reads from stdin, and doing blocking reads from stdin is AFAIK not possible in node.

sure could use a synchronous option, kinda hard to build html in nested callbacks a mile deep!

actually a piece of cake with viperHTML, just make those callbacks a Promise and pass it along


Material-UI: The key selectLabel provided to the classes prop is not implemented in ForwardRef(TablePagination).

Hi Everyone ,  i am using Mui Data-Grid with Next.Js  , it was working previously good, but now i tried every version of next js getting this error always
"Material-UI: The key selectLabel provided to the classes prop is not implemented in ForwardRef(TablePagination)."

[x] The issue is present in the latest release.
[x] I have searched the issues of this repository and believe that this is not a duplicate.

Current Behavior 😯
"Material-UI: The key selectLabel provided to the classes prop is not implemented in ForwardRef(TablePagination)."

Expected Behavior 🤔

Steps to Reproduce 🕹

Steps:

Install Next JS
install core and data-grid with yarn
use this example : https://material-ui.com/components/data-grid/
Run in google chrome.
Codesandbox to reproduce the issue
https://codesandbox.io/s/nifty-leftpad-ugdg1
Please open console and see those errors.

Context 🔦

Your Environment 🌎

`npx @material-ui/envinfo`
  System:
    OS: Linux 5.4 Ubuntu 20.04.2 LTS (Focal Fossa)
    Container: Yes
    Shell: 5.8 - /usr/bin/zsh
  Binaries:
    Node: 16.4.0 - ~/.nvm/versions/node/v16.4.0/bin/node
    Yarn: 1.22.5 - /usr/bin/yarn
    npm: 7.18.1 - ~/.nvm/versions/node/v16.4.0/bin/npm
  Managers:
    Apt: 2.0.5 - /usr/bin/apt
  Utilities:
    Git: 2.25.1 - /usr/bin/git
  Virtualization:
    Docker: 20.10.7 - /usr/bin/docker
  IDEs:
    Nano: 4.8 - /usr/bin/nano
    VSCode: 1.58.2 - /mnt/c/Users/harman/AppData/Local/Programs/Microsoft VS Code/bin/code
    Vim: 8.1 - /usr/bin/vim
  Languages:
    Bash: 5.0.17 - /usr/bin/bash
    Perl: 5.30.0 - /usr/bin/perl
    Python3: 3.8.5 - /usr/bin/python3

`package.json`
{
  "name": "rocky",
  "version": "0.1.0",
  "private": true,
  "scripts": {
    "dev": "next dev",
    "build": "next build",
    "start": "next start",
    "lint": "next lint"
  },
  "dependencies": {
    "@material-ui/core": "^4.12.1",
    "@material-ui/data-grid": "^4.0.0-alpha.33",
    "next": "11.0.1",
    "react": "17.0.2",
    "react-dom": "17.0.2"
  },
  "devDependencies": {
    "eslint": "7.30.0",
    "eslint-config-next": "11.0.1"
  }
}

ok i got it some one already posted this , my bad did not checked it now going to close this one and following :  #2117.

following : #2117.


Can not acquire file lock on Slurm cluster

covalent is a dependency when wrapper_fn function is unpickled and executed.
However, when covalent is initialized for the first time, it will try to create a new config file, which means acquiring a filelock inside ConfigManager.update_config().
Trying to acquire the filelock leads to the following error
Traceback (most recent call last):
  File "/global/homes/a/ara/slurm-tests/script-310be8a1-383d-4586-9dc1-821c8120e93f-0.py", line 5, in <module>
    function, args, kwargs = pickle.load(f)
  File "/global/homes/a/ara/miniconda3/envs/slurm-test/lib/python3.9/site-packages/covalent/__init__.py", line 22, in <module>
    from . import executor, leptons  # nopycln: import
  File "/global/homes/a/ara/miniconda3/envs/slurm-test/lib/python3.9/site-packages/covalent/executor/__init__.py", line 32, in <module>
    from .._shared_files import logger
  File "/global/homes/a/ara/miniconda3/envs/slurm-test/lib/python3.9/site-packages/covalent/_shared_files/logger.py", line 24, in <module>
    from .config import get_config
  File "/global/homes/a/ara/miniconda3/envs/slurm-test/lib/python3.9/site-packages/covalent/_shared_files/config.py", line 199, in <module>
    _config_manager = ConfigManager()
  File "/global/homes/a/ara/miniconda3/envs/slurm-test/lib/python3.9/site-packages/covalent/_shared_files/config.py", line 52, in __init__
    self.update_config()
  File "/global/homes/a/ara/miniconda3/envs/slurm-test/lib/python3.9/site-packages/covalent/_shared_files/config.py", line 109, in update_config
    with filelock.FileLock(f"{self.config_file}.lock", timeout=1):
  File "/global/homes/a/ara/miniconda3/envs/slurm-test/lib/python3.9/site-packages/filelock/_api.py", line 297, in __enter__
    self.acquire()
  File "/global/homes/a/ara/miniconda3/envs/slurm-test/lib/python3.9/site-packages/filelock/_api.py", line 264, in acquire
    raise Timeout(lock_filename)  # noqa: TRY301
filelock._error.Timeout: The file lock '/global/homes/a/ara/.config/covalent/covalent.conf.lock' could not be acquired.

Notes

Solution may be a change to core covalent, not this plugin.
Manually disabling the filelock acquisition code seems to resolve the problem (workflow completes successfully)

want that introduced in https://github.com/AgnostiqHQ/covalent/pull/1719 ?

wasn't that introduced in AgnostiqHQ/covalent#1719 ?

@santoshkumarradha Yes it was. Thanks for pointing that out. Used simple fix suggested there in this PR: https://github.com/AgnostiqHQ/covalent-slurm-plugin/pull/85


gftools-add-font.py: Not working with variable fonts

gftools-add-font.py works for static fonts, for the root directory of gftools I do the following:
python2 bin/gftools-add-font.py ~/Google/fonts/ofl/staatliches

And get the result:
Wrote /Users/Air/Google/fonts/ofl/font/DESCRIPTION.en_us.html
Wrote /Users/Air/Google/fonts/ofl/font/METADATA.pb

But when I run the same command from the same directory on a variable font, I get the following traceack:
Traceback (most recent call last):
  File "bin/gftools-add-font.py", line 267, in <module>
    app.run()
  File<EMAIL_ADDRESS>line 238, in run
    return _actual_start()
  File<EMAIL_ADDRESS>line 267, in _actual_start
    really_start()
  File<EMAIL_ADDRESS>line 220, in really_start
    sys.exit(main(argv))
  File "bin/gftools-add-font.py", line 253, in main
    metadata = _MakeMetadata(fontdir, is_new)
  File "bin/gftools-add-font.py", line 114, in _MakeMetadata
    file_family_style_weights = _FileFamilyStyleWeights(fontdir)
  File "bin/gftools-add-font.py", line 89, in _FileFamilyStyleWeights
    result = [fonts.FileFamilyStyleWeight(f) for f in files]
  File "/Users/Air/Demo/gftools/Lib/gftools/util/google_fonts.py", line 462, in FileFamilyStyleWeight
    sw = StyleWeight(m.group(2))
  File "/Users/Air/Demo/gftools/Lib/gftools/util/google_fonts.py", line 446, in StyleWeight
    return ('normal', _KNOWN_WEIGHTS[styleweight])
KeyError: 'VF'

update from internal, I believe we fixed this?

This is happening because google_fonts.py expects the font filenames to be in a certain format (Ex: FamilyName-Regular.ttf). I'm guessing the filename which caused the error was something like this: FamilyName-VF.ttf. Changing it to FamilyName-(Style).ttf where Style is one of these depending on the default weight of the VF, should fix the issue. Maybe we can document this somewhere, if not already there.

Suggest just making the error message better

Do variable fonts have a default style? Naming a variable font FamilyName-(style).ttf instead of FamilyName-VF.ttf seems like it could cause confusion in the future.
I will look into adding a check for FamilyName-VF.ttf

I don't have any strong opinions about this, I'm just putting my thoughts down.
If we call the variable font FamilyName-(default-style).ttf the filename will be indistinguishable from a static regular style ttf. If the font is downloaded from fonts.google, will the downloaded font appear as FamilyName-(default-style).ttf?
This might cause confusion as it would seem only the one style has been downloaded.

Thanks Eli :)
There shouldn't be any confusion with static files, since we wouldn't have both static and VF for a family. Re Downloads, we plan to avoid that confusion either through a README file or changing the filename.
As we make changes internally to add more support for VF, some of these things might change. Until then, I'd suggest not making any changes for this issue, since internally we rely on the filenames being in a certain format.

Ok, that sounds good. It seems like FamilyName-Regular.ttf works in most cases. I'll close this for now.

I think the confusion would be on the users end.
I will need to look into this more to better understand the issue.

@nyshadhr9 I'm trying this with a new variable font that was VTT hinted last week and I'm still having issues:
Here is the font I want to use: https://github.com/eliheuer/dosis-vf/blob/master/fonts/Dosis-VF_VTT.ttf
When I move this font file to the google/font/ofl/dosis directory I rename it Dosis-Regular.ttf as discussed above. But get the following output from running python2 bin/gftools-add-font.py ~/Google/fonts/ofl/dosis:

The VF of Dosis should not be called Dosis-Regular.ttf because that is the
filename of the non-VF regular style.
I would expect
Dosis-Roman.ttf
Dosis-Italic.ttf
or
Dosis-Roman-VF.ttf
Dosis-Italic-VF.ttf

Dave, do you foresee any issues with the VF being named as Dosis-Regular.ttf.
Agreed, the static non-VF regular will have the same name but the filenames are never user except for in Directory downloads. There we intend to have a VF suffix to avoid any confusion. During onboarding we would either have a static version of the font or a VF, but not both. Hence there shouldn't be any clashes in the filenames.

I'm always in favor of accurately naming files. Things like this create institutional knowledge and complex documentation needs that make it difficult for people to contribute fonts to the Google Fonts project. I think Ideally it should be very easy for anyone to make a PR to Google Fonts if they want their font included. We should do everything we can to make the process as simple as possible.
If this issue isn't addressed now it will need to be in the future. Renaming the file to Font-Regular.ttf introduces friction into the pipeline because the font files will need to be renamed before a pull request.
I think: Dosis-Roman-VF.ttf, Dosis-Italic-VF.ttf, etc.. would be appropriate here. What do we need to do to make this work?

Here is a good example issue: https://github.com/google/fonts/issues/1455
Ideally add-font.py should be able to onboard something like this with minimal work.

PR https://github.com/googlefonts/gftools/pull/96 is working for me when Dosis is named Dosis-Regular.ttf and gives me the following METADATA.pb:
name: "Dosis"
designer: "UNKNOWN"
license: "OFL"
category: "SANS_SERIF"
date_added: "2018-11-06"
fonts {
  name: "Dosis"
  style: "normal"
  weight: 400
  filename: "Dosis-Regular.ttf"
  post_script_name: "Dosis-ExtraLight"
  full_name: "Dosis ExtraLight"
  copyright: "Copyright 2011 The Dosis Project Authors (https://github.com/impallari/Dosis)"
}
subsets: "latin"
subsets: "latin-ext"
subsets: "menu"
axes {
  tag: "wght"
  min_value: 200.0
  default_value: 200.0
  max_value: 800.0
}

The default value of the weight axis is 200, so the filename should be Dosis-ExtraLight.ttf.

Ok, I can do that, I think @m4rc1e is trying to merge this today, should we include this new style of METADATA.pb in the PR https://github.com/google/fonts/pull/1733 ?
@davelab6 I talked to @nyshadhr9 about this in person today and we thought a good temporary solution might be having add-font.py automatically rename the file. But could you make an internal Google issue about fixing this? It doesn't have to be urgent, but it seems like this will cause problems down the road.

I don't think we should have any autofixing; we should have fixing scripts in gf-tools that the user is reminded about in an error message.
I think Family-Roman.ttf is better than Family-Style.ttf for VFs, because it sub-communicates the file is a VF without explicitly labelling it, and allows a set of static fonts + VFs to be in the same directory (a) which Family-Style.ttf prevents and (b) which we may want the GF download ZIPs to do.

The default value of the weight axis is 200

Why is that not 400?

I have no idea why that happened, but I updated the font and METADATA to 400 in the PR: https://github.com/google/fonts/pull/1733

Why is that not 400?

Because its origin (default master) is the ExtraLight. There is no Regular master in the font. I suggest a revert.

I reverted the two commits that changed the default weight axis: https://github.com/google/fonts/pull/1733

Origin and default are different things though?

Yeah. I'm starting to think dave is right. the fvar table header should look like this, correct?
  <fvar>

    <!-- Weight -->
    <Axis>
      <AxisTag>wght</AxisTag>
      <Flags>0x0</Flags>
      <MinValue>200.0</MinValue>
      <DefaultValue>400.0</DefaultValue>
      <MaxValue>800.0</MaxValue>
      <AxisNameID>256</AxisNameID>
    </Axis>

See the example table here: https://docs.microsoft.com/en-us/typography/opentype/spec/fvar

What, no Marc is right. The source file doesn't have a master at 400.
from the Microsoft docs:
The default value interacts with the glyph and glyph variations tables in a particular way: the variation instance that has the default coordinate value for each axis will use glyph outlines as defined in the glyph table, without any variations from the glyph variations table applied. This instance is referred to as the default instance.

So if there are only masters at 200 and 800, should the fvar table look like this?
  <fvar>

    <!-- Weight -->
    <Axis>
      <AxisTag>wght</AxisTag>
      <Flags>0x0</Flags>
      <MinValue>200.0</MinValue>
      <DefaultValue>200.0</DefaultValue>
      <MaxValue>800.0</MaxValue>
      <AxisNameID>256</AxisNameID>
    </Axis>

Reading a bit more on the GlyphsApp docs, Rainer justifies his assertion of why the default must be a source weight:

Default Appearance: ... for desktop fonts, pick the Regular as origin, or whatever the user will expect as the ‘default appearance’ of your font family. If all else fails, this is the weight the user will still be able to use.
File Size: Picking a middle master will likely increase the number of your point deltas, and therefore, also increase the eventual file size. On a single-axis setup, it will likely double the number of deltas, if not more. In other words, for webfonts, it makes more sense to pick one of the masters in an extreme end of the design space, because you want to keep file sizes and load times down.

This leads me to two conclusions:

We should keep the default value as a master in case the font is used in a desktop app lacking VF support, where, presumably, it might not render at all if the default isn't at a source*
We should not add a middle master just to support a default in the middle if the outlines of the font do not depend on it. It would increase file size with no benefit to the design or the web.**

I would want to test whether this is actually a risk, but I'm not sure how to. From a one-on-one conversation, it sounds like things were still working when @eliheuer set a middle default via TTX. However, I wonder whether it only works well on some platforms/apps, and might fail in others. How might we test this?

**On the web, a quick check shows that the font weight 400 is applied to VFs on the web, even if it's not set as the default. So, that seems to indicate that the "default" specified wght value doesn't matter for webfonts, anyway.
https://codesandbox.io/s/o9ww5z57ry

The above is the result of the following CSS:
@font-face {
  font-family: "signika";
  src: url("Signika-VF-3_masters.ttf");
  font-weight: 300 700;
}

html,
h1,
p {
  font-family: "signika", monospace;
  font-size: 32px;
}

Thanks, @davelab6, I was really curious about it and wanted to see what I could find out.
I definitely agree with you on this:

Family-Roman.ttf is better than Family-Style.ttf for VFs, because it sub-communicates the file is a VF without explicitly labeling it, and allows a set of static fonts + VFs to be in the same directory (a) which Family-Style.ttf prevents and (b) which we may want the GF download ZIPs to do.

I know that we don't want to call out that VFs are a new technology, but I would say that even so, keeping -var or VF in the naming would likely be a user benefit.
There are still plenty of cases in which a static fonts are still important for people to download. I don't think anyone is debating this, but I do think that these scenarios show why it's important that the VF have clearly-different naming from static instances. A few that come to mind:

Self-hosting web fonts and linking to fallback static font files (browser support is still just 78%)
Self-hosting a web font for a site that uses only a single weight
Some apps, such as Adobe InDesign, don't yet support VFs. This will likely change over time, but..
Some printers don't properly render VFs. For instance, contour overlaps are rendered in white rather than in black. I could see this being much slower to change than app support.

Further, if a VF has a name like Family-Thin.ttf, isn't there a high likelihood that it might confuse file systems if people try to place them into the same folder as the static weights? It confuses my Mac:

If a business or designer is going to be using a font from Google Fonts for a brand or a project, they will need to have access to both variable and static files, and it shouldn't be confusing which is which.
I don't know how much work it would take to support a clear naming structure, but from my perspective, it seems like a faily-critical aspect of providing variable fonts on the platform.

If a business or designer is going to be using a font from Google Fonts for a brand or a project, they will need to have access to both variable and static files

Why would you need both?
For Markazi Text, we provide just the VF when downloading the family.

I don't know how much work it would take to support a clear naming structure, but from my perspective, it seems like a fairly-critical aspect of providing variable fonts on the platform.

I said earlier in this thread that I don't have any strong opinions about this, but I have changed my mind. I suggest we should at least start the process needed to make the names for the fonts in incoming PRs as accurate as possible. It doesn't need to happen right away, but it would be nice to know it isn't something that will be put off indefinitely.

@m4rc1e they need both for the reasons I listed above, and likely others I can't think of right now. As Dave said: legacy systems.
As one concrete example, there's a great article on Medium about using Source Sans Variable in a conference website.
https://medium.com/clear-left-thinking/how-to-use-variable-fonts-in-the-real-world-e6d73065a604
They specify a variable font with static fallbacks, with the following CSS:
@font-face {
  font-family: 'SourceSans';
  src: url('source-sans-variable.woff2') format('woff2-variations'), /* var font*/
       url('source-sans-regular.woff2') format('woff2'); /* static fallback*/
  font-weight: 400;
}
@font-face {
  font-family: 'SourceSans';
  src: url('source-sans-variable.woff2') format('woff2-variations'), /* var font*/
       url('source-sans-black.woff2') format('woff2'); /* static fallback*/
  font-weight: 900;
}

Obviously, we don't expect most Google Fonts users to self-host fonts, but I don't think it should be unecessarily difficult or confusing to do so. If the variable font had a name with a style name included, I suspect that it would be confusing in this kind of use case.

I have a strong conviction that we must keep the file naming of VFs and static fonts 'compatible' to allow them to exist within the same directory.
The only VF in the main GF catalog is Markazi Text, which is named ofl/markazitext/MarkaziText-Roman-VF.ttf

I also wonder that this repo needs updating like https://github.com/googlefonts/fontbakery/pull/2156/files

I updated https://github.com/google/fonts/pull/1743 to use Orbitron-Roman.ttf and that breaks add-font.py. I get the following:
Traceback (most recent call last):
  File "bin/gftools-add-font.py", line 267, in <module>
    app.run()
  File "/Users/Air/Py/Venvs/Python2/lib/python2.7/site-packages/google/apputils/app.py", line 238, in run
    return _actual_start()
  File "/Users/Air/Py/Venvs/Python2/lib/python2.7/site-packages/google/apputils/app.py", line 267, in _actual_start
    really_start()
  File "/Users/Air/Py/Venvs/Python2/lib/python2.7/site-packages/google/apputils/app.py", line 220, in really_start
    sys.exit(main(argv))
  File "bin/gftools-add-font.py", line 253, in main
    metadata = _MakeMetadata(fontdir, is_new)
  File "bin/gftools-add-font.py", line 114, in _MakeMetadata
    file_family_style_weights = _FileFamilyStyleWeights(fontdir)
  File "bin/gftools-add-font.py", line 89, in _FileFamilyStyleWeights
    result = [fonts.FileFamilyStyleWeight(f) for f in files]
  File "/Users/Air/Py/Source/gftools/Lib/gftools/util/google_fonts.py", line 462, in FileFamilyStyleWeight
    sw = StyleWeight(m.group(2))
  File "/Users/Air/Py/Source/gftools/Lib/gftools/util/google_fonts.py", line 446, in StyleWeight
    return ('normal', _KNOWN_WEIGHTS[styleweight])
KeyError: 'Roman'

I have a strong conviction that we must keep the file naming of VFs and static fonts 'compatible' to allow them to exist within the same directory.
The only VF in the main GF catalog is Markazi Text, which is named ofl/markazitext/MarkaziText-Roman-VF.ttf

Indeed! https://github.com/google/fonts/issues/1666 btw.

Ok, I assigned this issue to me and will work on it in this branch: https://github.com/eliheuer/gftools/tree/add-vfont

As an update, add-font doesn't work with multi-axis fonts.
▶ gftools add-font /Users/stephennixon/type-repos/google-font-repos/fonts/ofl/inter

Traceback (most recent call last):
  File "/Users/stephennixon/type-repos/google-font-repos/inter/build/venv3/bin/gftools-add-font.py", line 269, in <module>
    app.run(main)
  File "/Users/stephennixon/type-repos/google-font-repos/inter/build/venv3/lib/python3.7/site-packages/absl/app.py", line 300, in run
    _run_main(main, args)
  File "/Users/stephennixon/type-repos/google-font-repos/inter/build/venv3/lib/python3.7/site-packages/absl/app.py", line 251, in _run_main
    sys.exit(main(argv))
  File "/Users/stephennixon/type-repos/google-font-repos/inter/build/venv3/bin/gftools-add-font.py", line 255, in main
    metadata = _MakeMetadata(fontdir, is_new)
  File "/Users/stephennixon/type-repos/google-font-repos/inter/build/venv3/bin/gftools-add-font.py", line 116, in _MakeMetadata
    file_family_style_weights = _FileFamilyStyleWeights(fontdir)
  File "/Users/stephennixon/type-repos/google-font-repos/inter/build/venv3/bin/gftools-add-font.py", line 91, in _FileFamilyStyleWeights
    result = [fonts.FileFamilyStyleWeight(f) for f in files]
  File "/Users/stephennixon/type-repos/google-font-repos/inter/build/venv3/bin/gftools-add-font.py", line 91, in <listcomp>
    result = [fonts.FileFamilyStyleWeight(f) for f in files]
  File "/Users/stephennixon/type-repos/google-font-repos/inter/build/venv3/lib/python3.7/site-packages/gftools/util/google_fonts.py", line 463, in FileFamilyStyleWeight
    raise ParseError('Could not parse %s' % filename)
gftools.util.google_fonts.ParseError: Could not parse /Users/stephennixon/type-repos/google-font-repos/fonts/ofl/inter/Inter[slnt,wght].ttf

add-font now works with VFs with multiple axes so I'm going to close this.


Reviewing the Go implementation

We want to release a Go implementation in 1.2.0. Aside from missing features that we're working hard to implement, there's also a couple of things in the code base that I'm not sure what we should do. I want to use this ticket to get some help or comments from the Go community.
First thing first, does the Go API make sense?
We copied the Java API, so I'm not entirely sure that it fits Go's style and philosophy. For example, our Lint tool warns us that https://github.com/google/tink/blob/master/go/aead/aead_config.go#L39 and several other places return unexported type *aead.config, which can be annoying to use. Is this problem important and we should fix it?
Secondly, I don't know any good way to implement classes consisting of pure static methods like CleartextKeysetHandle. To call a function in this class Go users have to initialize an object, while in Java users can just call the function directly (e.g., CleartextKeysetHandle().blah() versus CleartextKeysetHandle.blah()).
Aside from these immediate issues, we'd love to hear any feedback from the Go community on the API, the structure of the code base, coding style, features, etc.
Thanks!
@gdbelvin @dgryski

/cc @FiloSottile

In the case of returning unexported types, you can also create a public interface with no methods, or export the type while leaving all the methods and members unexported.
Pure static methods can just be exported methods in a package.  If there's no state, there's no reason to tie them to an object.  For example, in the case of the cleartext keyset functions, you can just have the tink package export the three methods (ParseSerializedKeyset, ParseKeyset, GenerateNew).  If you wanted to group them, you could create a cleartextkeyset package with those three methods (assuming it won't introduce any circular dependencies.)

Thanks for the suggestion @dgryski.

In the case of returning unexported types, you can also create a public interface with no methods, or export the type while leaving all the methods and members unexported.

It looks like I can get rid of these types. https://github.com/google/tink/blob/master/go/aead/aead_config.go just consists of static methods and (in the near future) constants, so it looks like I can merge them to the aead package.

Pure static methods can just be exported methods in a package. If there's no state, there's no reason to tie them to an object. For example, in the case of the cleartext keyset functions, you can just have the tink package export the three methods (ParseSerializedKeyset, ParseKeyset, GenerateNew). If you wanted to group them, you could create a cleartextkeyset package with those three methods (assuming it won't introduce any circular dependencies.)

These methods need to stay in the same package as keyset_handle.go. Otherwise they cannot call the newKeysetHandle method. We want to restrict access to that method because we want to control who can read cleartext keysets (which is a bad practice).
I think I have two choices:
1/ Moving both keyset_handle.go and cleartext_keyset_handle.go to tink/keyset_handle package, or
2/ Keep them in tink.
I prefer 1/.

How long would a full refactor of the golang methods take? From what I can tell, most of the functions are becoming static context?

Hi Thai,
if you're not working with anyone on this already then perhaps I could help. Thank you for having Go port version :)
I added a few general comments below. Let me know if that's helpful. There's no expectation on my part that you'd do any of my suggestions. I'm just trying to help.

First thing first, does the Go API make sense?

I think that it makes sense.
The API surface is large though and the smaller the API the easier it is to choose the correct function. Also, the fewer promises you make in the API the easier it'll be to maintain it.
It's also clear that the API is inspired by Java and not a Go-first design. I don't necessarily see this as a bad thing -- if you have to maintain multiple versions of an API, then it makes sense to keep them somewhat similar. It may be better to have a complete Go version of a Java API than a Go design that lags behind its Java counterpart.
I'd say that if most common use-cases are easy to get right and less common use-cases are supported then the API makes sense. I don't know what those use-cases are though. It would really be very helpful if you provided examples of what you consider the most common intended usage of this API. We could decide what Go code we'd want to write for them and then derive the API from that. We should also include those examples in the documentation (you'd rather have people copy-paste your examples than code written by others and we both know that something will get copy-pasted).
I've seen your Java examples. It's unclear to me how representative of actual usage those are.
I'd typically focus on the high-level API first but since I'm not sure how far from Java we could go and what problem we're solving (code examples), I also listed below a few easy-to-fix things that I noticed. That is, less API design, more Go readability.
Protos vs Go types:
Keyset and KeysetHandle types seem a little confusing (at least they were to me). Perhaps use "Keyset" type? Something like:
  ks, err := tink.KeysetFromProto(pb) // returns an error if pb is not a valid keyset
  pb, err := ks.ToProto()
  ks.{Encrypt,Decrypt}

Keyset also looks like something that could get its own package. It looks like there are a lot of keyset operations. You could have keyset.{Decrypt,Encrypt,Encrypted,ToProto,FromProto}.
In general, it might be good to hide protos from users.
Naming:

Initialisms should use consistent case. For example: s/tink.Aead/tink.AEAD/
https://github.com/golang/go/wiki/CodeReviewComments#initialisms

We typically drop "Get" prefix unless it creates a conflict. For example, s/GetPrimitive/Primitive/ or s/GetPrimitive/PrimitiveForKeyset/
https://golang.org/doc/effective_go.html#Getters

Go names are typically shorter than in other languages. It's good to drop unnecessary context. For example: s/tink.KeysetHandle/tink.Keyset/.

Avoid stutter in names. For example, s/aead.primitiveSetAead/aead.primitives/   (or aead.primitiveSet)

Similarly, avoid stutter with the type or function name. For example:
Replace:

  func (km *KeysetManager) RotateWithTemplate(keyTemplate *tinkpb.KeyTemplate) error

With:
  func (km *KeysetManager) RotateWithTemplate(kt *tinkpb.KeyTemplate) error

In general, put enough context in variable names that it's clear what they mean. Don't include context that's obvious from the code around.

Interfaces with a single method have typically the same name as the method with "er" suffix. For example, s/PublicKeySign/Signer/ and s/PublicKeyVerify/Verifier/

Some names lack context. For example "ValidateVarsion" should probably be "ValidateKeyVersion" (although it's not clear what "key version" is -- is it the same as "keyId"?)

Line breaks:
There's no line length limit in Go style. It's good to split lines that become unreadable, but it's much more common to see unnecessary line breaks. For example:
  func DecryptKeyset(encryptedKeyset *tinkpb.EncryptedKeyset,
	masterKey Aead) (*tinkpb.Keyset, error) {

would be better as
  func DecryptKeyset(encryptedKeyset *tinkpb.EncryptedKeyset, masterKey Aead) (*tinkpb.Keyset, error) {

don't rename imports unless it's necessery due to conflicts (except for protos). For example, don't rename "github.com/golang/protobuf/proto" as "proto". That doesn't do anything.

Setters/Getters:
Some of them seem unnecessary. For example:
  // SetKeyTemplate sets the key template of the manager.
  func (km *KeysetManager) SetKeyTemplate(template *tinkpb.KeyTemplate) {
    km.keyTemplate = template
  }
  // KeyTemplate returns the key template of the manager.
  func (km *KeysetManager) KeyTemplate() *tinkpb.KeyTemplate {
    return km.keyTemplate
  }

It would be better to just export keyTemplate.
Comments:

I think that this comment: "Package tink defines interfaces for the crypto primitives that Tink supports." doesn't provide enough information. For example, look at the regexp package https://godoc.org/regexp for inspiration. Ideally this document would be self contained. It references "primitives that Tink supports" but it's not clear what those are. Provide more information, perhaps a link to general Tink documentation and a couple examples of common use.

Comments should state what's not obvious from the code. For example this comment is redundant:

// newPrimitiveSetAead creates a new instance of primitiveSetAead
func newPrimitiveSetAead(ps *tink.PrimitiveSet) *primitiveSetAead {

All exported names should be documented, but this name is unexported and this comment could be dropped.

Avoid decoration in docstrings. For example Aead.Encrypt says

	// Encrypt encrypts {@code plaintext} with {@code additionalData} as additional

godoc doesn't recognize {@code ...} syntax and you end up with:
https://godoc.org/github.com/google/tink/go/tink#Aead
It's better to do:
	// Encrypt encrypts plaintext with additionalData as additional

Instead of "X is an implementation of Y interface" I'd probably say "X implements Y".

You can preview documentation with godoc (either locally or at godoc.org). For example, "* Constants and convenience.." renders poorly.

We typically avoid "thread-safe" because Go doesn't have threads. It's better to say "it's safe for concurrent use".

Go doesn't "throw" anything. For example, replace "@throws error if the prefix type of {@code key} is unknown." with "returns an error if the prefix type of the key is unknown".

Make sure that only existing code is referenced. For example, "{@code key.KeyId}" references the "key" package. It's not clear where it is. In fact, it looks like you use uint32 instead of KeyId (btw. Go name would be KeyID, not KeyId).

Some comments state the obvious but don't include actually useful information. For example

    // Registry creates an instance of registry if there isn't and returns the instance.

I still don't know what this registry is and why I should care (the "registry" type is unexported and godoc doesn't show its documentation).
FWIW. I read the documentation for "type registry" and I still don't know why I'd use it. It sounds like this is an internal detail that I, as a user, shouldn't worry about.
Function signatures:
Consider:
   Encrypt(plaintext []byte, additionalData []byte) ([]byte, error)

You can collapse multiple arguments with a single type. It could become

  Encrypt(plaintext, additionalData []byte) ([]byte, error)

I'd be worried that people will get the order of arguments wrong. It may be worth to consider introducing types for plaintext, additional data, ciphertext. The tradeoff isn't clear to me here though. This is just something to consider, not necessarily a recommendation. I point it out because you say "Tink is a multi-language, cross-platform library that provides a simple and misuse-proof API for common cryptographic tasks."

Internal packages:
You could "hide" the subtle package if you like: https://docs.google.com/document/d/1e8kOo3r51b2BWtTs_1uADIA5djfXhPT36s6eHVRIvaU/edit
Interfaces:
In Go, you'd typically define an interface when:

you need to work with values of multiple types (i.e. you "consume" the interface), or
you want to define a standard for interop between libraries (e.g. the "io" package)
It's different than in Java where you define interface when you want to return a value implementing an interface.

The purpose of the "KeyManager" interfaces isn't clear to me. It's large so it's hard to implement and most callers won't care about all methods. It's never used except to assert that types implement it. I suggest dropping it. If someone needs to use two different KeyManagers then they can define their own interface. Most likely they'll use a subset of methods.
Note that changing an interface (e.g. adding methods) is hard, in Go, as it breaks everyone who implements it.
I don't understand the Aead interface either. It seems that there's only one implementation and it's unclear that users are expected to provide their own. Same for tink.Mac, PublicKeySign,PublicKeyManager,PublicKeyVerify.
As to returning unexported types. We could talk about that but it really depends on what kind of help you expect here. I think that this problem arises because the API is shaped after the Java API. Ideally we would have an API that returns exported structs instead.

Thanks so much for your comments! I'll address the readability issues first, then I'll schedule a meeting to discuss the API design.
I made the changes in https://github.com/google/tink/commit/92c541b7a9a859032672a253e2b0edd83655b7f9 several days ago, before I saw your comment today. In that change, I made most of the functions static, i.e., removing tink.Registry().blah() with tink.blah(). BTW the registry is just a map of key types to their implementations; we need it because we want to make Tink modular, i.e., users can include only key types that they need or they can add their own key types.

sounds good

What's left to do for this issue? Can this be closed? Are there substantial missing components from the Go implementation that we're waiting on? If so, should they have their own tracking issues?

This is almost done. You can see the new structure at https://godoc.org/github.com/google/tink/go.
We're on track to include Go as part of 1.3.0 release.

Golang support was included in 1.3.0 RC1. If you have some free time, please play with it (instruction is https://github.com/google/tink/blob/master/docs/GOLANG-HOWTO.md) and file bugs if you encounter anything undesirable.
This historical bug can now be closed. Thanks everybody for your insights!


WHAT HAPPENS TO THE DEVICE IF OTHER USERS IN THE DOMAIN NEED TO USE IT

Why can't you state what happens to the device after you delete it from a user's device list.  In our domain, multiple people use different workstations every day.  In my case, I am constantly rebuilding workstations, rejoining them to the domain and installing Office 365.  So what happens should one of the devices be removed from my user account under devices.
Hopefully, it is still functional.  Otherwise, who thought up this crazy concept of capping the number of devices.  It's just frustrating as hell when we are already paying for the O365 subscriptions to utilize the product.

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

ID: 6cffa8f2-c2e5-34f1-6b62-0b4d37a43120
Version Independent ID: 07d66fc0-3f76-b505-baca-3df0b0dab279
Content: Error (The maximum number of devices that can be joined to the workplace by the user has been reached) during a Workplace Join - Active Directory
Content Source: support/azure/active-directory/maximum-number-of-devices-joined-workplace.md
Service: active-directory
GitHub Login: @genlin
Microsoft Alias: genli

@EvilSlacker08, I am not sure if your issue is caused by the maximum number of devices is reached. I would suggest you contact Microsoft support to troubleshoot the issue.


Changes to default project theme don't update right away

Godot version
ea4b8de
System information
Windows 11
Issue description
Setting the default project theme for the first time:
https://user-images.githubusercontent.com/50304111/182706699-26757f10-6a46-4ddb-87a2-0eacd95baf66.mp4
After restarting editor:
https://user-images.githubusercontent.com/50304111/182706752-b253e564-bff1-4045-ba5e-4091bb4a4458.mp4
In theory I don't see why this should require an editor restart in the first place. Also as a side note I think the project default font could be removed as well as you should already be able to do this by assigning a default project theme with a default font.
See also https://github.com/godotengine/godot/issues/62844
Steps to reproduce
See above
Minimal reproduction project
MRP.zip

Some other possibly relevant issues I found:
https://github.com/godotengine/godot/issues/39785
https://github.com/godotengine/godot/issues/48477
https://github.com/godotengine/godot/issues/56520
https://github.com/godotengine/godot/issues/60930

Interesting...
https://user-images.githubusercontent.com/2223172/221440127-e16a6343-b499-44c3-83f1-9bebd2587b11.mp4

Yeah, of course. There is simply no mechanism for propagating global theme changes to controls. Bu there will be.


[release-2.0] Add a webhook for namespace deletion

This commit makes KMM set the kmm.node.k8s.io/contains-modules label on all namespaces that contain at least one Module.
It also adds a new webhook to the bundle and the corresponding handler in the manager.
The new webhook rejects namespace deletions if the kmm.node.k8s.io/contains-modules label is present on the namespace. This avoids entering situations where the namespace is being deleted and KMM cannot create unloading Pods to honor Module deletion.
Upstream-Commit: c50978c512d947c295cb0812d8f29eb37fc08732

This is a cherry-pick of 6e1902d.
/cc @mresvanis @yevgeny-shnaidman

/ok-to-test

/lgtm

/lgtm