Trust insecure-registry "registry.container-registry" by default

Currently to pull images from the bundled private registry one needs to use the address "localhost:32000".
When DNS is also enabled, the private registry service is assigned a DNS record "registry.container-registry". From any pod on the cluster, curl registry.container-registry:5000/v2/ returns expected result. But using this address for pulling images in the pod creation will fail:
  Warning  Failed     2m7s (x4 over 3m36s)  kubelet, xxx-xxxxxxx  Failed to pull image "registry.container-registry:5000/box": rpc error: code = Unknown desc = failed to resolve image "registry.container-registry:5000/box:latest": no available registry endpoint: failed to do request: Head https://registry.container-registry:5000/v2/box/manifests/latest: dial tcp: lookup registry.container-registry: no such host

From what I understand it tries to pull via https because this address is not added to insecure-registries when docker spins up. "localhost:32000" works because that address is added to the docker config.
Given that both DNS and registry are bundled DNS, can "registry.container-registry" be added to docker config so that we can use it in pods' yaml?

Hi @robinchm
Can you please try this, edit /var/snap/microk8s/current/args/containerd-template.toml and right under the  localhost:32000 entry add (not sure about the https vs http):
      [plugins.cri.registry.mirrors."local.insecure-registry.io"]
          endpoint = ["http://registry.container-registry:5000"]

Then do a microk8s.stop and after a few seconds a microk8s.start.
If that works we could put it in https://github.com/ubuntu/microk8s/blob/master/microk8s-resources/default-args/containerd-template.toml#L52 so that it is there by default.

Hi @ktsakalozos
I have the same issue, and I tried with these configuration, but still try to pull from https instead of http.

@carlososiel can you please provide me with a way to reproduce the error you see? This "pull from https instead of http" sounds like a docker daemon needs to be configured to use the insecure registry MicroK8s provides. Please have a look at the comment https://github.com/ubuntu/microk8s/issues/382#issuecomment-477174066  where we have to tell the local dockerd that there is an insecure registry it can push images to.

@ktsakalozos I have installed version 1.14 of microk8s, with docker installed in version 18.09.3. The docker daemon has configurations for use insecure registry and with docker info show this information:
Insecure Registries:
 <IP_ADDRESS>:32000
 <IP_ADDRESS>/8

And when I try to pull and image from these registry work fine:
docker pull <IP_ADDRESS>:32000/test/api-proxy:240
240: Pulling from test/api-proxy
8e402f1a9c57: Already exists
7b69d8b552de: Already exists
42e747db7e28: Already exists
4f8106e1c445: Already exists
f57d5b707f97: Pull complete
19d04a24e235: Pull complete
ffa026816182: Pull complete
Digest: sha256:1ae6ce5cdf7534a05220b961e6998faaa9b1fcbeb731c9f7b0e4d6879674ef04

But the version 1.14 of microk8s replace docker with containerd, and I configure cri plugin to use the same insecure registry, but not work, the pull always try to be from https instead of http

@carlososiel your docker on your host seems correctly configured then. Can you share the /var/snap/microk8s/current/args/containerd-template.toml? This is where you should add the insecure registries you have. (Make sure you do not mix tabs with spaces they are hard to find).

@ktsakalozos This is the registry config from my containerd-template.toml.
[plugins.cri.registry]
      [plugins.cri.registry.mirrors]
        [plugins.cri.registry.mirrors."docker.io"]
          endpoint = ["https://registry-1.docker.io"]
        [plugins.cri.registry.mirrors."local.insecure-registry.io"]
          endpoint = ["http://<IP_ADDRESS>:32000"]

I am not very familiar with containerd. Previously I could use microk8s.docker ps to retrieve what containers are currently being run. With sudo microk8.sctr c ls I get empty results while I do have a few pods running in the cluster. I thought containerd was managing all containers of microk8s?

@robinchm would these be of any good to you: microk8s.ctr -n k8s.io images  ls and microk8s.ctr -n k8s.io c  ls. Kubernetes is using the k8s.io namespaces.
@robinchm can you share the yaml you apply and you get this error? I need to test it.

@carlososiel can you show me how the registry at http://<IP_ADDRESS>:32000 was setup? I also need to reproduce this to see what is failing.

@ktsakalozos
The containerd command works! Thanks a lot.
The yaml I used for my pod is minimal:
apiVersion: v1
kind: Pod
metadata:
  name: box
  namespace: default
  labels:
    app: box
spec:
  containers:
  - name: box
    #image: localhost:32000/box
    image: registry.container-registry:5000/box
    imagePullPolicy: IfNotPresent
  restartPolicy: Always

To reproduce this you need to push some long-running image to localhost:32000/box first (what I use is a ubuntu base image with some command to keep it alive, but I think any image would do). Then create a pod with the above yaml. Notice there is a line image: localhost:32000/box commented out, if I use that line instead the pod can spin up without problem.

Maybe the containerd does not attempt to resolve against cluster DNS? It always uses host's network interface directly? Just guessing.

@robinchm 你的配置文件不正确，你调整成下边的配置文件就可以了
[plugins.cri.registry]
      [plugins.cri.registry.mirrors]
        [plugins.cri.registry.mirrors."docker.io"]
          endpoint = ["https://registry-1.docker.io"]
        [plugins.cri.registry.mirrors."local.insecure-registry.io"]
          endpoint = ["http://registry.container-registry:5000"]

yaml文件这样设置就可以了
apiVersion: v1
kind: Pod
metadata:
  name: box
  namespace: default
  labels:
    app: box
spec:
  containers:
  - name: box
    image: local.insecure-registry.io/box
    imagePullPolicy: IfNotPresent
  restartPolicy: Always

@robinchm 你的配置文件是有问题的，请按照如下的步骤检查你的配置文件：

检查配置文件/var/snap/microk8s/current/args/containerd-template.toml

    [plugins.cri.registry]
      [plugins.cri.registry.mirrors]
        [plugins.cri.registry.mirrors."docker.io"]
          endpoint = ["https://registry-1.docker.io"]
        [plugins.cri.registry.mirrors."local.insecure-registry.io"]
          endpoint = ["http://<IP_ADDRESS>:5000"]

记得需要重新启动microk8s
sudo snap restart microk8s

检查kubernetes的部署文件yaml关于image的配置

      containers:
      - name: mon-app
        image: local.insecure-registry.io/mon

注意：不需要配置端口

@cnhome
What I wanted was to use host name in pulling images, rather than using the default IP.
What you suggested would not work in this respect, and it even hard coded an IP that may change.

I note a lot of people in this thread are using the 1.3 containerd syntax for specifying registries, which isn't supported in containerd 1.2.5 that is currently shipped with microk8s https://github.com/ubuntu/microk8s/issues/702
https://github.com/containerd/cri/issues/1143
https://github.com/containerd/containerd/releases/tag/v1.3.0

@robinchm why was this closed?
It's still not configured automatically when enabling the registry add-on
this is what I put:
[plugins.cri.registry]
      [plugins.cri.registry.mirrors]
        [plugins.cri.registry.mirrors."docker.io"]
          endpoint = ["https://registry-1.docker.io"]
        [plugins.cri.registry.mirrors."localhost:32000"]
          endpoint = ["http://localhost:32000"]
        [plugins.cri.registry.mirrors."registry.container-registry.svc.cluster.local:5000"]
          endpoint = ["http://registry.container-registry.svc.cluster.local:5000"]

Then afterwards do
microk8s.stop
microk8s.start

https://github.com/ubuntu/microk8s/pull/1122


Update holographic-remoting-create-player.md

Confirmation that page is up-to-date.

Docs Build status updates of commit 11e41b2:
:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

mixed-reality-docs/holographic-remoting-create-player.md
:white_check_mark:Succeeded
View

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


Npm private repo

This PR adds support for NPM private repositories.

@gmccue looks good to me, can you just squash it into 1 commit? :)

:ok:

@guilhem done!


do you have the imagenet pretrained model?

hello,is your pretrained model the imagenet pretrained model?If not, what's your pretrained dataset?I want to use denset to do place recognition , can I use your pretrained model?Thank you thank you ~~

I don't have it cause it's too time consuming to train that thing, sorry about that~


Expose SendConnack, err return on OnConnect

Exposes the func (s *Server) SendConnack(cl *Client, reason packets.Code, present bool, properties *packets.Properties) error method to allow developers to properly formed SendConnack packets directly. Adds a err return value to OnConnect allowing developers to halt the connection process.

Pull Request Test Coverage Report for Build<PHONE_NUMBER>

31 of 31 (100.0%)  changed or added relevant lines in 2 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage increased (+0.002%) to 98.608%

Totals

Change from base Build<PHONE_NUMBER>:
0.002%

Covered Lines:
5173

Relevant Lines:
5246

💛  - Coveralls


Gestouch with Air18

Hello,
I tested Gestouch with Starling, but it doesn't work properly with Air18. It works well with Air17, but I need Air18 now. Others have similar problems: www.forum.starling-framework.org/topic/android-air-touch-lag-update
Will you keep Gestouch up to date and fix this?
Best regards, Harry

@harry90 those "similar problems" posts are 2 years old. What is the issue exactly? Seems like people are using library now, no problems reported.

Sorry, was the wrong link, look here:
http://forum.starling-framework.org/topic/gestouch-remove-and-restart
The second post is two weeks old! I get an error with this line:
Gestouch.inputAdapter ||= new NativeInputAdapter(stage);

i had that problem before, if i remember correctly all you need to do is to assign the new NativeInputAdapter directly instead of using the logical operator. like x = x || y; or maybe if that doesnt work, try a plain if/else.
http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/operators.html#logical_OR_assignment

This is a 'different' issue with AIR 18, but it directly relates to AIR 18/Flash Player 18... we have a card game that uses Gestouch for picking up and moving the cards etc... we have thousands of players, and a small percentage of 'Windows users' reported not being able to interact with the cards... our internal QA team could not repro this... we finally had one of our engineers able to reproduce the issue... Windows machine Firefox browser, Flash Player 18 -- no errors, it just wouldn't receive the touch events. Spent a few hours trying to track down the issue... updated to Flash Player 19 and now it works fine.

@breathedevelopment I'm getting the same issues as you, but with Microsoft's Edge browser. Unfortunately there doesn't appear to be a way of updating Flash Player from 18 to 19 to see if it fixes the issue. Other browsers work fine with 19. Unless anyone knows differently I guess it's a case of waiting for MS to roll out the update.

@Selonie
are you absolutely sure that it's that Flash Player doesn't dispatch neither MouseEvent, nor TouchEvent?

Honest answer - no. I've not run any tests. All I know is Gestouch works flawlessly in Air 17, 18 and 19. In the Flash Player it's working well in Chrome and Firefox running 19, but not on Windows 10 64bit Edge browser. Starling and Feathers' touches are working just nothing related to Gestouch.
I've just tested on a 32bit machine this Edge browser has received the 19 update and it works! So hopefully this won't be an issue once the 19 update is pushed out to everyone.
By the way thanks and Good Work!

@Selonie
well if Starling input works, then there's some issue with Gestouch =(


Use swift regex for script customization

Migrates script customization to use Swift Regex as well as cleaned up some more localized strings.

@nickoneill reduced the regex code by quite a bit! Check out this WWDC video if you're interested to learn a bit more. They added builders similar to SwiftUI to make regex more declarative which we didn't have a use for here, but is pretty cool!


Update lookup formulae for field titles and descriptions in (OCDS) sheets

The formulae evaluate to a #REF! error when the template is opened in MS Excel.

Removing the unnecessary INDIRECT functions seems to fix the problem:
=IF(OR(ISERROR(SEARCH("extension",INDIRECT("$A"&row()))),NOT(ISERROR(SEARCH("parties",INDIRECT("$C"&row()))))),VLOOKUP(INDIRECT("$C"&row()),INDIRECT("OCDS Schema 1.1.5!$B:$D"),2,FALSE), VLOOKUP(INDIRECT("$C"&row()),INDIRECT("OCDS Extension Schemas 1.1.5!$B:$D"),2,FALSE))

Should be
=IF(OR(ISERROR(SEARCH("extension",INDIRECT("$A"&row()))),NOT(ISERROR(SEARCH("parties",INDIRECT("$C"&row()))))),VLOOKUP(INDIRECT("$C"&row()),'OCDS Schema 1.1.5'!$B:$D,2,FALSE), VLOOKUP(INDIRECT("$C"&row()),'OCDS Extension Schemas 1.1.5'!$B:$D,2,FALSE))

fixed in updated version 0.91 published 20220407

closed wrong issue!

was right the first time


The error path is getting concatenated with relative path twice

From @sguptatw on December 18, 2017 6:38
Expected behavior
The error path in the stacktrace should be correct
Actual behavior
The error path is getting concatenated with relative path twice
Steps to replicate

Project - WrongPathInJS.zip
npm install
Run spec concept diagnostics.spec

Observe the error stack having multiple relative paths

TypeError: vscodeUri.file is not a function
            at Object.getFullPath (...\getgauge\gauge-lsp-tests\...\getgauge\gauge-lsp-tests\tests\util\fileExtension.js:8:22)
            at Object.startGaugeDaemon (...\getgauge\gauge-lsp-tests\tests\lsp\daemon.js:14:30)
            at Object.<anonymous> (tests\gaugeDaemon.js:4:18)

Version
Gauge version: 0.9.6.nightly-2017-12-13
Commit Hash: 571fda8

Plugins
-------
js (2.0.3.nightly-2017-12-15)

Copied from original issue: getgauge/gauge-vscode#79

Not able to replicate with latest gauge and js.


Breaking change in email notificationplugin

Expected behaviour:
Send on mail by task
Actual behaviour:
Send multiple mails by task (sends one per entry)
Steps to reproduce:

Step 1: flexget execute with following config

Config:
tasks:
  some:
    rss: ...
    email:
      to<EMAIL_ADDRESS>      from<EMAIL_ADDRESS>
Log:
2016-12-19 11:57 VERBOSE  notify        some             Successfully sent a notification to `email`
2016-12-19 11:57 VERBOSE  notify        some             Successfully sent a notification to `email`
2016-12-19 11:57 VERBOSE  notify        some             Successfully sent a notification to `email`
2016-12-19 11:57 VERBOSE  notify        some             Successfully sent a notification to `email`
2016-12-19 11:57 VERBOSE  notify        some             Successfully sent a notification to `email`
2016-12-19 11:57 VERBOSE  notify        some             Successfully sent a notification to `email`
2016-12-19 11:58 VERBOSE  notify        some             Successfully sent a notification to `email`
2016-12-19 11:58 VERBOSE  notify        some             Successfully sent a notification to `email`

Additional information:

Flexget Version: 2.8.7
Python Version: 3.4.5
Installation method: virtualenv + pip
OS and version: gentoo linux latest

I updated recently and flexget started to send mails per entry instead of per task. I see that I can fix it myself with https://flexget.com/Plugins/Notifiers/notify_task, though I think this was a breaking change and probably should default to per task.

This is exactly what UpgradeActions and the forum is for.

I think this is actually a bug with the backwards compatibility.


feat(cognito): Add cognito token provider with cache

Before submitting a pull request, please read
https://github.com/bancolombia/scaffold-clean-architecture/wiki/Contributing
Description
Add cognito token provider from credentials and define a default cache to reuse a token
Category

[x] Feature
[ ] Fix
[ ] Ci / Docs

Checklist

[x] The pull request is complete according to the guide of contributing
[x] Automated tests are written
[x] The documentation is up-to-date
[x] The pull request has a descriptive title that describes what has changed, and provides enough context for the changelog
[x] If the pull request has a new driven-adpater or entry-point, you should add it to RADME.md and sh_generate_project.sh files for generated code tests.
[ ] If the pull request has changed structural files, you have implemented an UpgradeAction according to the guide
[ ] If the pull request has a new Gradle Task, you should add Analytics according to the guide

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


Optional dependences do not install

pip install txtai[all] does not work - or any other optional dependences. Error message is:
zsh: no matches found: txtai[ann]
I find the same problem for the github install option:
pip install git+https://github.com/neuml/txtai#egg=txtai[pipeline]
zsh: no matches found: git+https://github.com/neuml/txtai#egg=txtai[pipeline]
Am I missing something obvious?

This issue may be of assistance - https://github.com/neuml/txtai/issues/646#issuecomment-1907302019
It looks like this has something to do with how zsh works.

Closing this issue due to inactivity. Please re-open or open a new issue if there are further questions.

Sorry I missed this - thanks for your help :)


Allow users to submit feedback/report-a-bug

Describe the solution you'd like
As a developer, while using the Hiro Explorer, I would like to have an option to submit new feature requests or report a bug from Explorer directly.
Additional context
With this, any context-specific detail can be automatically extracted and included in the report, so I don't have to gather more information and/or screenshots to report either in Discord or GitHub. All this can be entirely automated.

@sjwhitely Should we simply list<EMAIL_ADDRESS>in the footer to provide a path here?

It could be like this in the footer. Still, note that though this solution it's low-effort, it would not allow for "any context-specific detail can be automatically extracted and included in the report" since it all depends on what the user types in the email or GH issue.

:tada: This issue has been resolved in version 1.21.0 :tada:
The release is available on GitHub release
Your semantic-release bot :package::rocket:


YakYak window popups up with a new notification

Entire window popups up with the new notification instead of a banner on top right of the screen.
MacBook Pro 15inch - late 2017
OS: Catalina (10.15.3)
Let me know if you need screenshots or anything for this.

Sounds like a similar issue to https://github.com/yakyak/yakyak/issues/1125
Try the 1.5.5 beta


Fix adding bones with the same name after calling Skeleton3D.clear_bones()

Adding a bone to a Skeleton3D with the same name after calling clear_bones() will fail and print scene/3d/skeleton_3d.cpp:386 - Condition "p_name.is_empty() || p_name.contains(":") || p_name.contains("/") || name_to_bone_index.has(p_name)" is true. as the bone name is still present in the bone name index:
@tool
extends EditorScript

func _run() -> void:
	var skeleton := Skeleton3D.new()

	skeleton.add_bone("some_bone")
	skeleton.clear_bones()
	skeleton.add_bone("some_bone")

This PR fixes this by clearing the bone name index.

Follow-up to #77307. The fix looks correct to me.
Adding the cherrypick:4.0 label in case we decide to cherry-pick #77307 for 4.0.x.

Thanks! And congrats for your first merged Godot contribution :tada:

Cherry-picked for 4.0.4 with https://github.com/godotengine/godot/pull/77307.


Fix endian handling

mainly fix endian handling in serialization utils, also some typo and style fixes

Coverage increased (+1.2%) to 94.941% when pulling 3af58d4621375946728ca52c2e290484050e36df on hendrikmuhs:fix-endian-handling into b1e0351f74a0438e8eded2bb5902339ce1b5910c on KeyviDev:master.


feat: Added Contributors page.

Added /contributors page to showcase community contributions.

[x] fetching contributors of the project with GitHub API.
[x] added a GitHub action that will run every three hours to fetch updated contributors list from the Github API.
[x] can support showcasing of external contributors as well as sponsors in the future.
[x] showcasing social links of contributors.

https://user-images.githubusercontent.com/50803990/135497346-1aa2f37d-7bb3-4e9a-98a3-91616836b2b4.mp4

OMG github-bot is already working here adding contributors dynamically!

This feature is awesome @ProCode2 . Thanks for adding it :)


Migrate CI from TravisCI to GitHubActions

Travis-ci.org has shut down.
Action Results: https://github.com/Econa77/NextGrowingTextView/runs/5303243194

wooo!
Sorry I notice PRs you've created. before this, I just created PR that makes this lib bump up to v2.
It's a huge upgrade, including breaking changes.
I'll involve what you mentioned in v2


Unpacked arrays syntax highlighting on multiple lines

#4 has fixed unpacked array support when the closing bracket of the array is on the same line, but the same issue remains if if the closing bracket of the array is on a different line, such as:
assign mem_trx_ex = '{
      c_en     : mem_c_en         ,
      addr     : {mem_addr, 2'h0} ,
      default  : 'hX
   };

ps: Thanks for the extension :)

Fixed.

Working like a charm :)
Thank you!


contracts: Make chain extension state types public

Downstream code sometimes need to name those state types in order to write code that is generic over those states. Hence we make them public but introduce a new Sealed trait to prevent downstream code from implementing those state traits for their own types.
cc @xgreenx

bot merge


[C4GT] Support Array fields in selective disclosure

Description
A content in a VC (Verifiable Credential) can be an array (like string, number, boolean or object). We are adding support for object type through #109  similarly we need to add support to individual array elements to be available separately in content-hash.
Goals

[ ] Allow usage of a array type in a Verifiable Credential's schema and thus VC content.

Expected Outcome
We should be able to issue and verify a VC with array element.
Acceptance Criteria
NA
Implementation Details
NA
Mockups / Wireframes
NA

Product Name
CORD
Organization Name
Dhiway
Domain
VC, SDK,
Tech Skills Needed
TypeScript
Mentor(s)
@amarts / @NiranjanAP
Complexity
[Low]
Category
[Feature]
Sub Category
[API], [Technical Debt], [Beginner friendly], [Research]

As the requirements skill set criteria is matching with my skill set, it would be a great chance for me to learn new real-world problems and gaining new knowledge from this experience. And yeah, I am interested in this project.

@amarts @NiranjanAP I want to contribute to this issue. I did not understand the issue completely. Can you help me on this?

@SoumyadipYT-OSS @MayaSatishRao  this piece if undergoing some major changes, you can ignore this issue.


IPyKernel not getting installed when re-creating the virtual environment

Disable zmq support with the following setting
"jupyter.disableZMQSupport": true
Create a virtual env named xyz
Open a notebook, run a cell against this kernel
Ensure you get a prompt to install ipykernel & things work as expected.
Now, uninstall ipykernel, reload VS Code and attempt to run the cell & it will not work

/verified


Support for IOS 8.x

I am attempting to get a group to use Mattermost, but one person is running iOS 8.x.  Is there any reason why the app in the app store is 9.x and up?  I tried building it for 8.x and it appears to run ok. ...

Hi @thos37 - we're only able to support and test iOS 9+, I don't think anyone has tested on iOS 8 to confirm what works or doesn't work. I think iOS 8 makes up <2% of the market share for iPhones, so I'm not sure if it's something we'll add support for at this point in time.


Unit tests for flame_rive

What could be improved
Currently the bridge library flame_rive barely has any tests, it would be good to improve the test coverage here.

The RiveComponent should be tested
The RiveComponent should move around and transform correctly
It should test that you can add children to the RiveComponent
Other things that you can come up with

Why should this be improved
So that we don't accidentally break anything when doing changes.
More information
https://github.com/flame-engine/flame/tree/main/packages/flame_rive
Good to know
Make sure that you comment on the issue that you will be working on this before starting to program.
To set up the Flame environment you need to follow the instructions in our contributing.md doc, if you have any problems setting up your environment (or other issues of course) feel free to ask for help in the Flame channel on our Discord server.
Read through this to see how we organize the tests in flame:
https://docs.flame-engine.org/1.4.0/development/testing_guide.html

Hey, I would like to work on this issue.

Super! I've assigned you to the issue, remember to join our Discord server if you have any questions etc. :)
https://discord.gg/tREXPqMPnV


Return Transaction ID on 409: Conflict

When I attempt to perform an action on an object that is locked by another transaction, I get a 409 Transaction: Conflict error.
This error does not specify the id of the open transaction.
It is often the case that I'm fully aware that a transaction is likely to be open: for example, an application process failed mid-transaction, and the transaction was neither rolled back nor closed before the process terminated. If the process failed, however, I probably won't have access to the transaction ID.
I would like the URI of the open transaction in the body of the 409 response, so I can decide whether or not to roll it back.

Hey @tomwrobel, we discussed this at today's community call and I'm wondering if you see any concern with potentially giving the transaction ID to a user that wouldn't normally know. The user would still require permissions to act on the repository, so the bad actor would already need to be "inside the house" (so to speak). But I wanted to raise this to get your thoughts.

Hey @whikloj
A transaction ID isn't, in itself, terribly revealing, is it? I don't know if any information could be intuited from it. If they don't have the authority to revoke or update it, then I can't see how knowing the ID itself would be an issue.

The only risk is that a rogue user could steal the transaction ID and submit unintended requests within that transaction. It's akin to a session theft but much less damaging. We just wanted to raise it as a minor concern. If it was problematic, It could the controlled by a properties file toggle with an opt-in strategy

One of the reasons this is relevant, btw, is that we have some LOOONG transactions in our system. If we're uploading a series of very large binary files via a copy, then it can take easily 30 minutes for a transaction to complete. Not merely do we need to keep pinging the transaction to keep it alive, but we need to set the transaction timeout quite high

Hey @tomwrobel. There is a thought that you might want to have multiple users working on a transaction at the same time. But you are correct about your process with Alice and Bob above. It really doesn't even have to be malicious actions, but Bob could perform any action with the transaction up to and including committing or rolling it back.

Can a user who didn't open a transaction roll back that transaction? It seems to me that only admin level users should be able to do that

Yes, any user with a transaction ID can use it as we don't associate the transaction to a specific user.

Can a user who isn't authenticated (in a system configured to require authentication) open or modify a transaction at all?

No, you do need to have permissions on the fcr:tx endpoint for a user to open, commit or rollback a transaction.
Adding a user ID check for access to the transaction would require some work.

@tomwrobel just a thought, but could your long running client print out or log the transaction ID when you open a transaction?

Also, moving this to https://fedora-repository.atlassian.net/browse/FCREPO-3893

@whikloj I can log it, but then I'm unpicking things manually, instead of having code that can say "just break the lock". It's a last ditch fallback.
I'm sure you've thought about it, but there is a potential issue here:

process one begins a transaction on x number of objects, quite a lot of them
process one starts a side process that refreshes/renews the transaction every minute (we used this for large uploads)
process one dies, but the side process stays active

Now you've effectively locked those objects until, I assume, the Fedora server is restarted.
However, in answer to the general issue:
I understand that, as transactions permissions aren't granular (you need permissions to open, close, or rollback ANY transaction, but not an individual one) the option is either:

a) transactions can only be modified by someone with that transaction's tx:id, and in effect once started will either be finished by the agent who started them or timeout OR
b) any transaction can be stepped on by any agent who can open, commit, or rollback a transaction

If so, I think I agree that the second mode of operation is probably better. I think the straightforward solution, in any case, would be to wait out the timeout and let things roll back automatically.

Hey @tomwrobel, I'm not sure what the difference is between getting the transaction ID from the process that started the transaction or from a second process that is trying to act on the resource?
In both cases you could then send a "rollback" command to undo the transaction's work.

Resolved with https://github.com/fcrepo/fcrepo/commit/2563f0f7fb973387282d4e22c659a3c4a1f4f4bc


The Unlicense is not allowed to be used inside Google, however an equivalent license 0BSD is.

When you promote the Unlicense you should be aware that it's reception in legal circles is not great. Source

Google does not allow contributions to projects under public domain equivalent licenses like the Unlicense (and CC0), while allowing contributions to 0BSD licensed and US government PD projects.[13]

Instead i suggest you promote the 0BSD license. Both licenses are public domain equivalent licenses, so they are interchangeable, however licensing ones code under 0BSD makes it easier for companies to use it, as the BSD license family is well understood by software lawyers and 0BSD is an derivative of this license.

I presume by promote you're referring to listing on https://choosealicense.com/licenses -- it was added there to fill out the spectrum from the strongest copyleft to public domain equivalent -- in the latter category, at the time the only other option was CC0-1.0 which is more problematic for software due to its express non-grant of a patent license.
That source quotes me from many years ago saying I like Unlicense, as a movement anyway. 😆
If you follow the reference https://opensource.google/docs/patching/#forbidden at the source as well as https://opensource.google/docs/thirdparty/licenses/#unencumbered it looks like patching is not allowed (at least not without additional process) though use is. This still is not ideal of course, as Google employees are important contributors to open source.
There was a robust discussion of Unlicense on the OSI list last year, spanning many months, the result being approval, see https://lists.opensource.org/pipermail/license-review_lists.opensource.org/2020-June/004890.html
My weak bias is to update https://choosealicense.com/licenses by replacing Unlicense with MIT-0, which is based on MIT -- far more common and thus more familiar than BSD-* these days, and anyway 0BSD is a derivative of ISC, not BSD-*. Of course they all amount to the same thing, so it isn't super important. 😄

I know that there is an ongoing debate whether 0BSD derives from a BSD or the ISC license. In this discussion i favor Rob Landley, creator of the 0BSD license which claims he derived it by changing a BSD license (he should know). But as you say the distinction is irrelevant other than to trigger annoyance in people to involved in the discussion.
A short search for "0BSD" vs "MIT-0" on GitHub shows the first one is vastly ( x4 ) more popular. However i would not fight a war over which license to replace the "Unlicense" with (since 0BSD and probably also MIT-0 are OSI approved).
I just wanted to raise awareness that 0BSD unlike any other Public Domain equivalent license (including MIT-0) is approved to be contributed under by Google employees. While it is odd that Google is putting their thumb on the scale which of the public domain equivalent licenses wins out, i would prefer for a licenses picker tool to recommend the license which has the least risk of downstream problems. Since Googles thumb is on the scale that license is 0BSD and it would be annoying if people chose another license based on recommendations but later would have to switch project  license to accept a patch from an Google employee.

There's no debate about the derivation of 0BSD, only what to call it -- and the debate is long over, 0BSD is a fine name, I only brought it up here since you mention derivation -- it's derived from the ISC license used by OpenBSD -- it's derived from the license used by a BSD, not derived from a BSD license. 😄 See https://lists.spdx.org/g/Spdx-legal/message/1287 and also https://github.com/github/choosealicense.com/issues/464 (voluminous).
I predict that regardless of what happens in this repo, MIT-0 will be vastly more popular than 0BSD in 20 years (the appropriate timescale to think about license adoption). The rationale (which I agree with) for 0BSD rather than 0ISC or similar was that nobody besides license nerds knows about ISC.  And as ISC is to BSD, BSD is to MIT brand/recognition wise. Permissive BSD licenses at one time had a significant head start on adoption relative to MIT, but now are far less popular. The same will play out with 0BSD and MIT-0.

Ok so can u give me your opinion and what you would do?.  The .Sent from my Galaxy
-------- Original message --------From: freemin7 @.> Date: 3/12/21  6:50 PM  (GMT-05:00) To: "github/choosealicense.com" @.> Cc: Subscribed @.***> Subject: Re: [github/choosealicense.com] The Unlicense is not allowed to be used inside Google, however an equivalent license 0BSD is. (#805)
I know that there is an ongoing debate whether 0BSD derives from a BSD or the ISC license. In this discussion i favor Rob Landley, creator of the 0BSD license which claims he derived it by changing a BSD license (he should know). But as you say the distinction is irrelevant other than to trigger annoyance in people to involved in the discussion.
A short search for "0BSD" vs "MIT-0" on GitHub shows the first one is vastly ( x4 ) more popular. However i would not fight a war over which license to replace the "Unlicense" with (since 0BSD and probably also MIT-0 are OSI approved).
I just wanted to raise awareness that 0BSD unlike any other Public Domain equivalent license (including MIT-0) is approved to be contributed under by Google employees. While it is odd that Google is putting their thumb on the scale which of the public domain equivalent licenses wins out, i would prefer for a licenses picker tool to recommend the license which has the least risk of downstream problems. Since Googles thumb is on the scale that license is 0BSD and it would be annoying if people chose another license based on recommendations but later would have to switch project  license to accept a patch from an Google employee.
—You are receiving this because you are subscribed to this thread.Reply to this email directly, view it on GitHub, or unsubscribe.

A friend pointed me at this thread.
There's no "ongoing debate" about where 0BSD comes from, the history is at the bottom of https://landley.net/toybox/license.html . It was derived from the openbsd suggested template license (which was itself derived from ISC, yes), and I got permission from Kirk McKusick to call it a BSD license at Ohio Linuxfest in 2013 (and later went back and got it it in writing ala https://landley.net/toybox/0bsd-mckusick.txt). I've been using that license on toybox for 10 years now, which was merged into Android M as its new command line implementation in December 2014.
0BSD is the result of an explicit marketing strategy. When I switched off of GPL I specifically looked for something I could call a BSD license because "GPL vs BSD" was the original axis upon which license discussions over the past 20 years (often in a Linux vs FreeBSD context), and since there were already "4 clause BSD", "3 clause BSD", and "2 clause BSD", so one more variant called "Zero clause BSD" (analogous to CC0 or Coke Zero) was an easy sell to be rubber stamped by a company's legal department under the same umbrella. Beyond that I looked for the simplest solidly worded license I could start with, and could make the smallest possible change to.
I walked 0BSD through the spdx approval process at Samsung's request in June 2015, walked it through an OSI process in November 2018, helped it through the github approval process here (from https://github.com/github/choosealicense.com/issues/464#issuecomment-289236817 through https://github.com/github/choosealicense.com/pull/643) and so on. It didn't "just happen", it was an awful lot of work. (And still is. Maintainership is a constant stream of little https://github.com/spdx/license-list-XML/pull/1174#issuecomment-774484288 issues.)
The thing about public domain equivalent licenses is, done right, THEY ARE EQUIVALENT. That's sort of the point. If you would like to use toybox code under the unlicense, what exactly is stopping you? The license on the existing copyrighted code grants sufficient non-conflicting permissions, and does not require you to carry around a specific blob of text describing those permissions (the same way modern copyright law does not require registration or a copyright statement for the copyright to exist).
I have nothing against other public domain equivalent licenses, but I promote 0BSD because it was designed to easily to win certification and approval, which it has done. I want MORE code under public domain equivalent licenses, and am saddened that so many people nominally pursuing this goal are their own worst enemy. Saying "oh you should use this other public domain equivalent license" serves no purpose except to muddy the waters. (It's saying "you're doing public domain equivalence WRONG! Betcha didn't know you could do it wrong, did you? I guess you don't understand it as well as you did, better hire some lawyers to ponder and convince you to rethink this decision and wind up using Apache 2.0 instead?" which does not help.) I was going "if you don't like GPL anymore because the FSF killed it, and are thinking something bsd-like instead, try this one" because https://speakerdeck.com/benbalter/open-source-licensing-by-the-numbers?slide=41 was of great concern to me.
I talked to the unlicense guys at some length years ago (mostly unarchived but there's the occasional https://twitter.com/landley/status/451667419128270848 to show when), but "I can't use that, it's unlicensed" tends to end most adoption conversations involving it before looking at the license wording. And for years creative commons advertised itself as "not suitable for use on source code" before they even DID CC0 (and then CC0 is way longer and more complicated than it really needs to be so the result is intimidating and makes lawyers worry they've missed a gotcha), WTFPL went  out of its way not to be taken seriously, things like the John the Ripper license (https://openwall.info/wiki/john/licensing) made no effort to present themselves as a generic license applicable to more than one project...
I remember the first time a Google engineer told me to my face (at linuxconf.au) that CC0 was a terrible license that "took away your rights" and how 0BSD was so much better, and I tried to explain what "public domain equivalent" meant but he was adamant in his position. (Since diplomacy is the art of letting other people have your way, I didn't press too hard but instead agreed that I also think 0BSD is a good license and thanked him for supporting it.) This is why I get very very tired every time somebody starts an "this thing is bad, use this other thing which is equivalent to it and therefore must also be bad" argument that drives people AWAY from public domain equivalent licensing. Just... can we not? Simple, clear marketing message, has achieved success, please take the win.
If you'd like more context on this, I gave a talk on "toybox vs busybox" in 2019 that was about half about licensing https://www.youtube.com/watch?v=MkJkyMuBm3g and you can read a long OSI thread at https://lists.opensource.org/pipermail/license-review_lists.opensource.org/2018-October/003581.html or here's a slightly cleaned up version of the first github thread from 2017 in two parts on my blog: 1) https://landley.net/notes-2017.html#26-03-2017 and 2) https://landley.net/notes-2017.html#27-03-2017 (unfortunately spdx redid its mailing list archive to something worse and https://lists.spdx.org/pipermail/spdx-legal/2015-December/001580.html redirects badly now but you can probably dig it out of archive.org if you try) and those link to a zillion other things like https://www.openwall.com/lists/musl/2016/03/23/11 ...
It didn't "just happen". It was (and still is) SO much work.

I also note https://android.googlesource.com/platform/external/toybox/+/5d35ee244cee3 was applied recently: I have no idea what it means, but it mentions CC0 and Unlicense in android legal plumbing.
The trick to understanding the bug numbers is https://landley.net/toybox/faq.html#b_links by the way.

Also, the Unlicense is INVALID in some countries such as Germany, and has unclear meaning in some other countries, such as Australia.

(I am not a lawyer and this is not legal advice)

Also, the Unlicense is INVALID in some countries such as Germany, and has unclear meaning in some other countries, such as Australia.

This has been discussed by OSI: https://lists.opensource.org/pipermail/license-review_lists.opensource.org/2020-May/004870.html
According to Pamela Chestek, as well as Till Jaeger, the Unlicense contains license language and would therefore be interpreted as a license where public domain is inapplicable. And even if it didn't have such language (which it does) it would still be interpreted as a license.

thanks @landley for chimming in here and sharing all you work.
sorry everyone else for digging into the "thanks" hole, but i'm also thankful for every single other contribution in this thread.
ironically, this post will probably break the trend and be mostly useless to everyone!
just wanted to say thanks, for now. 😘

What is happening when I don't put any license on my project?

@karam72 if you are the copyright holder of a project (you automatically are if you are the author) then there are certain things only you can do, and are illegal for everyone else without your authorization.
A license is that: an authorization. It allows others to do those things, subject to the conditions of the license.
So if you don't add a license to your project than all rights are reserved by you and none can use it in ways that require your permission.

@karam72 we have a page for that question, though @Aspie96's answer above is more concise.
Related to the main topic of this issue, yesterday there was a largish discussion of MIT-0 and other instruments mentioned above.

I presume by promote you're referring to listing on https://choosealicense.com/licenses -- it was added there to fill out the spectrum from the strongest copyleft to public domain equivalent -- in the latter category, at the time the only other option was CC0-1.0 which is more problematic for software due to its express non-grant of a patent license.
That source quotes me from many years ago saying I like Unlicense, as a movement anyway. laughing
If you follow the reference https://opensource.google/docs/patching/#forbidden at the source as well as https://opensource.google/docs/thirdparty/licenses/#unencumbered it looks like patching is not allowed (at least not without additional process) though use is. This still is not ideal of course, as Google employees are important contributors to open source.
There was a robust discussion of Unlicense on the OSI list last year, spanning many months, the result being approval, see https://lists.opensource.org/pipermail/license-review_lists.opensource.org/2020-June/004890.html
My weak bias is to update https://choosealicense.com/licenses by replacing Unlicense with MIT-0, which is based on MIT -- far more common and thus more familiar than BSD-* these days, and anyway 0BSD is a derivative of ISC, not BSD-*. Of course they all amount to the same thing, so it isn't super important. smile

just wondering where in the unlicense does it grant patent use

On 5/8/22 12:51, MrRawes wrote:

I presume by promote you're referring to listing on
https://choosealicense.com/licenses <https://choosealicense.com/licenses> --
it was added there to fill out the spectrum from the strongest copyleft to
public domain equivalent -- in the latter category, at the time the only
other option was CC0-1.0 which is more problematic for software due to its
express non-grant of a patent license.

The advantage of copyleft was that it let you stop thinking about licensing.
Unfortunately, that was a "there can be only one" situation, and once GPLv3 cut
off GPLv2's head the resulting lighting show poisoned the entire space.
The advantage of public domain equivalent licensing is it lets you stop thinking
about licensing because you can relicense AFTER THE FACT. If you want to switch
between CC0, the unlicense, and 0BSD each release, in theory you can. This means
a choice of public domain equivalent license shouldn't be something you can get
wrong, because you can always change it for one of the others later. (If you
can't, it's not a public domain equivalent license.)
This is not true for public domain adjacent licenses such as conventional BSD,
MIT, Apache, ISC, and so on. They all require "copy this specific license text
verbatim in all future works", which make them "sticky". Grab different
functions from different sources and your about->license pulldown can grow to
many pages.
I don't start threads arguing for one public domain equivalent license over
others because it just convinces people that they're NOT equivalent, thus
selecting a public domain equivalent license isn't an improvement over having to
choose between Apache or ISC, and thus they might as well not license their code
at all. People keep starting these threads and cc'ing me on them, and it's very
tiring.
I would much rather that actual "public domain" was the one and only pulldown
choice of its kind, but sadly that's not the legal environment we live in.

That source quotes me from many years ago saying I like Unlicense, as a
movement anyway. laughing

The main problem with "the unlicense" has always been the immediate objection
"We can't ship unlicensed code". The need to clarify "it's unlicensed" doesn't
mean "it's under the unlicense" raises red flags about the legal acumen of the
people who created that license, so it's not a minor hitch you can easily smooth
over after somebody stubs their toe on it. If the license's creators DIDN'T
realize it would cause confusion sufficient to restrict its adoption, what else
did they get wrong?
I spoke to the unlicense people on multiple occasions most of a decade ago, such
as: https://twitter.com/landley/status/451690566498004992
In that thread they raised the objection that if my code is in the public domain
someone could relicense it (um... yes?) and suggested I use CC0. (I described
toybox as "sort of" public domain because the phrase "public domain equivalent
license" hadn't been formalized yet. The relevant wikipedia page was renamed
from "Permissive Free Software license" in 2016, two years after that thread.
There was no agreed-upon proper name for the category before then.)

There was a robust discussion of Unlicense on the OSI list last year,
spanning many months, the result being approval, see
https://lists.opensource.org/pipermail/license-review_lists.opensource.org/2020-June/004890.html
<https://lists.opensource.org/pipermail/license-review_lists.opensource.org/2020-June/004890.html>

My interaction with OSI has been to get them to stop misnaming 0BSD, which I've
had to do multiple times because they keep losing institutional memory and
introducing regressions. I note that https://lwn.net/Articles/893293/ actually
has a BETTER opinion of OSI's competence than I do. That's why my 0BSD
standardization effort (at Samsung's request) was through SPDX in 2015. And last
year ISO standardized the SPDX list, not the OSI list. (ISO 5962:2021 is SPDX
v2.2.1, and yes 0BSD is in it.)

My weak bias is to update https://choosealicense.com/licenses
<https://choosealicense.com/licenses> by replacing Unlicense with MIT-0,
which is based on MIT -- far more common and thus more familiar than BSD-*
these days, and anyway 0BSD is a derivative of ISC, not BSD-*.

MIT-0 was created 5 years after 0BSD (in 2018), and while the license itself
seems fine the entire argument in favor of it was "I prefer this public domain
equivalent license to that public domain equivalent license". Which risks
turning this space into the same kind of argument that BSD vs Apache always was,
so people go back to treating software copyrights the same as software patents
and just opting out of them until the law can change.
https://www.reddit.com/r/programming/comments/arx6rg/the_mit_no_attribution_mit0_license/
0BSD had an explicit strategy behind its name:
https://www.openwall.com/lists/musl/2016/03/23/11
And in addition to being sourced from the OpenBSD suggested template license,
here is Kirk McKusick's permission to call 0BSD a BSD license:
https://landley.net/toybox/0bsd-mckusick.txt
"GPL vs BSD" was the axis of discussion for 20 years
(https://timreview.ca/article/67
https://www.linuxadictos.com/en/software-libre-vs-open-source-es-lo-mismo.html
https://www.quora.com/What-are-the-consumer-differences-between-GPL-and-BSD-licences
https://www.reddit.com/r/linuxquestions/comments/biy57v/why_would_any_software_use_a_bsd_license_over_a/
) and there are already 4 clause, 3 clause, and 2 clause BSD licenses, the
differences between which honestly don't matter to most people. This made it
very easy to get legal department rubber stamps as "a minor variant of the
OpenBSD suggested template license, made by deleting half a sentence".
Note that over half of both the 0BSD and MIT-0 license text is boilerplate
warranty disclaimer (https://lkml.org/lkml/2013/10/6/102) that acts as legally
useless ballast. Such disclaimers predate the microcomputer and thus the
shrinkwrap software industry. They originally existed because bespoke software
development contracts of the 1960s that accidentally took a big iron system
offline with their custom install (there WAS no retail market because there were
only 23 PDP-6 systems and ~700 PDP-10 systems ever built; EVERYTHING was a
custom job) could cost a customer more than they'd paid the vendor to develop
the software (between hardware depreciation and idled employee salary, six
figures of liability could be easy to prove). But those were new custom
development CONTRACTS, not retail software licenses. Microcomputer volume
produced a categorically different software industry: the Atari 2600 sold almost
2 million consoles in its first 3 years, the Vic-20 sold a million units the
year it was introduced, and the IBM PC got 250k preorders before the first unit
shipped. Boxed shrinkwrap software for all of them showed up on store shelves
because the customer base was big enough to support a retail software
development model. The "liability" for a $30 retail purchase (written before you
bought it rather than commissioned) that went into a $300 computer (the prices
for the Vic-20 and its game "omega race"), with no contract signed between the
parties, was not remotely the same legal exposure. The potential issue in that
channel was RETURNS, not lawsuits. But big software vendors applied the same
legal boilerplate to the new market as they had to the old, and the new players
copied the big boys trying to look adult and professional instead of garage
operations. And that's how we got saddled with this legacy stupidity where
people give medical advice on blogs but think their free software licenses need
giant all-caps legal disclaimers. Most web pages are shipping me 6 megabytes of
javascript that runs in my browser window to show me ads I don't want to see and
surreptitiously track my movement between sites, but what I upload to github
needs disclaimers?
0BSD left that in there because "existing license minus half a sentence" was an
explicit design goal, as part of its marketing strategy.
Github has a disproportionate amount of MIT licensing because Github's licensing
tutorial explicitly recommended MIT licensing to people who didn't know what
license to choose. Despite which, the percentage of projects with no license
specified increased during that period. If you move outside of "GPL vs BSD"
into the cloud of BSD-alikes I don't see evidence that MIT is more well known
than BSD? Google primarily recommends Apache 2.0. MacOS/Darwin uses its own
Apple Public Source License (also OSI approved but described as "partial
copyleft" on its wikipedia page). Microsoft has its own MSPL, but authored and
shipped https://github.com/microsoft/tslib as 0BSD. (If you try to see if
Microsoft has shipped anything under the unlicense, googling for "microsoft
unlicense" or "microsoft the unlicense" just finds pages about unlicensed
products and license management tools...)
There's nothing wrong with MIT-0 as a license. My concern isn't "0BSD vs MIT-0",
my concern is "public domain equivalent licensing" vs "leaving the project
without stated license terms". If having five public domain equivalent license
options (0BSD, MIT-0, Unlicense, CC0, WTFPL...) pulls more people AWAY from not
licensing their project, great. If we get starbucks menu paralysis and people
can't find "just a coffee" on the menu and walk out without ordering, it's not a
net win. I honestly don't know what the right thing to do there is.

Of course
they all amount to the same thing, so it isn't super important. smile

I agree that when code ships under a public domain equivalent license, you
should be able to reuse it under ANY license. That's what public domain
equivalent means. Arguing "these licenses are completely fungible but you should
use THIS one instead of that one" is a type of thread I keep getting cc'd on,
but don't tend to start.
We're coming up on 10 years of 0BSD. I like being able to point to
https://github.com/search?q=license%3A0bsd&type=Repositories finding 45k
repositories under 0BSD to indicate "you're safe joining the crowd". The fact
Google and Microsoft have both authored and shipped 0BSD code is also good for
reassuring corporate legal departments.
But if somebody ships code under MIT-0 or CC0, then it's public domain
equivalent and I can use it in toybox. (Other projects can already use toybox
code; even GPL projects like busybox.) Arguing that one public domain equivalent
license is inferior to another public domain equivalent license boils down to
marketing spin. I have explained 0BSD's marketing strategy and why I considered
it an effective way to get corporate adoption (which it has) without sacrificing
individual hobbyist adoption (which seems to be the case).
That said, once the ice is broken and public domain equivalent licensing starts
being used somewhere, the same people tend to gradually become more open to
other public domain equivalent licenses, as long as they are demonstrably fungible.
I've focused on the one that's designed to be good at breaking the ice, but I
admit to significant bias here...
Rob


Incorporate RStudio workbench to RHOAI

Incorporate RStudio workbench to RHOAI
Acceptance criteria:

[ ] Switch R Studio to be RHEL based
https://github.com/red-hat-data-services/notebooks/pull/95
[ ] Configure ocp-ci to build and push the image on downstream
[ ] Update the manifests folder to include the correlated image stream

To install the R language and RStudio IDE on RHEL, it is necessary to enable the codeready-builder-for-rhel-9-rpms and EPEL repositories. These repositories provide the additional packages required for a successful installation, a way to achieve this is by ensuring entitlements are granted to access the subscription-manager.
Since, we are building our images on OCP-CI it was necessary to  investigate how we can pass the credentials as secrets while the build time.
After a investigation on if it is feasible to pass credentials as secrets on buildtime, shows that the ocp-ci utilizes the dockerStrategy for image builds. This poses a significant obstacle as it restricts the ability to pass secrets as config maps via build_args. Referencing a pertinent link, it's noted that there are no plans to implement this feature within the specified strategy: https://access.redhat.com/solutions/4501551. In the documentation for the ocp-ci platform, they outline the utilization of secrets within a job, which, in our case, is not applicable. Our specific requirement involves passing the secret during the buildtime of the image, rather than executing it within the container.

Jira for the user-facing documentation work: https://issues.redhat.com/browse/RHODS-12941


Player Controls and logic

Controls to the player to test the animations. Space for jump and arrow keys to move in x.

Done


Slack community Link on Footer's "community" links block.

@dpordomingo
As a user I want to access and know about the slack community link on the footer, where it actually says "community".

Yes, we will link it there once we have: https://github.com/src-d/backlog/issues/1077


what does devkit_path contains ?

It links to ImageNet metadata like label names. It is not necessary for running the whole code as you could change "labels_dic" in the rest of the code.

It links to ImageNet metadata like label names. It is not necessary for running the whole code as you could change "labels_dic" in the rest of the code.


docker: fix for building docker 1.7, which doesn't compile with Go 1.5

it's better to pass in go = go_1_4 when importing docker, so api of the function doesn't change.

Good point. It was just a hotfix for my current setup.
I'll try to update Docker and make new proper PR.

fixed in c2841a2221a14b00b43d4774a7353621792b0d5b


TF2.0: no supported kernel for GPU devices is available

Thank you for your code, but I encountered an error running "run_common_voice. py".
That is：
Traceback (most recent call last):
File "run_common_voice.py", line 547, in
app.run(main)
File "/data0/tclxa/tfenv/anaconda3/envs/tf20/lib/python3.7/site-packages/absl/app.py", line 299, in run
_run_main(main, args)
File "/data0/tclxa/tfenv/anaconda3/envs/tf20/lib/python3.7/site-packages/absl/app.py", line 250, in _run_main
sys.exit(main(argv))
File "run_common_voice.py", line 506, in main
gpus=gpus)
File "run_common_voice.py", line 257, in run_training
train()
File "run_common_voice.py", line 230, in train
loss, metrics_results = train_step(inputs)
File "/data0/tclxa/tfenv/anaconda3/envs/tf20/lib/python3.7/site-packages/tensorflow_core/python/eager/def_function.py", line 457, in call
result = self._call(*args, **kwds)
File "/data0/tclxa/tfenv/anaconda3/envs/tf20/lib/python3.7/site-packages/tensorflow_core/python/eager/def_function.py", line 520, in call
return self.stateless_fn(*args, **kwds)
File "/data0/tclxa/tfenv/anaconda3/envs/tf20/lib/python3.7/site-packages/tensorflow_core/python/eager/function.py", line 1823, in call
return graph_function.filtered_call(args, kwargs)  # pylint: disable=protected-access
File "/data0/tclxa/tfenv/anaconda3/envs/tf20/lib/python3.7/site-packages/tensorflow_core/python/eager/function.py", line 1141, in filtered_call
self.captured_inputs)
File "/data0/tclxa/tfenv/anaconda3/envs/tf20/lib/python3.7/site-packages/tensorflow_core/python/eager/function.py", line 1224, in call_flat
ctx, args, cancellation_manager=cancellation_manager)
File "/data0/tclxa/tfenv/anaconda3/envs/tf20/lib/python3.7/site-packages/tensorflow_core/python/eager/function.py", line 511, in call
ctx=ctx)
File "/data0/tclxa/tfenv/anaconda3/envs/tf20/lib/python3.7/site-packages/tensorflow_core/python/eager/execute.py", line 67, in quick_execute
six.raise_from(core.status_to_exception(e.code, message), None)
File "", line 3, in raise_from
tensorflow.python.framework.errors_impl.InvalidArgumentError: Cannot assign a device for operation transducer/prediction_network/embedding/embedding_lookup/ReadVariableOp: Could not satisfy explicit device specification '/job:localhost/replica:0/task:0/device:GPU:0' because no supported kernel for GPU devices is available.

This may be due to the use of multiple GPUs. I solved this problem by setting strategy = None. And some code in run_common_voice.py/run_evaluate(...) are change to be：
    if strategy is not None:
        losses, metrics_results = strategy.experimental_run_v2(step_fn, args=(dist_inputs,))
        mean_loss = strategy.reduce(
            tf.distribute.ReduceOp.SUM, losses, axis=0)
        mean_metrics = {name: strategy.reduce(
            tf.distribute.ReduceOp.SUM, result, axis=0) for name, result in metrics_results.items()}
    else:
        losses, metrics_results = step_fn(dist_inputs)
        mean_loss = tf.reduce_sum(losses, axis=0)
        mean_metrics = {name: tf.reduce_sum(result, axis=0) for name, result in metrics_results.items()}


[Rancher2] Istio CPU / Memory Usage updates

Request Summary:
Istio 1.8.1 removed additional resources and need to be redone. https://rancher.com/docs/rancher/v2.x/en/istio/v2.5/resources/
Details:

workload
request cpu
request memory
limit cpu
limit memory

ingress gateway
100m
128mi
2000m
1024mi

egress gateway
100m
128mi
2000m
1024mi

istiod
500m
2048mi

proxy
10m
10mi
2000m
1024mi

Totals:
710m
2314mi
6000m
3072mi

@brendarearden I have two questions about this one -

Can you confirm that there is no CPU or memory limit for istiod?
Are these values configurable and if so, which values in the overlay file let you configure them? We've previously documented that the values can be configured in the overlay file, but now that I look at the file, I don't see exactly how you would update the requests/limits for those values. For example I don't see egress gatway:

#apiVersion: install.istio.io/v1alpha1
#kind: IstioOperator
#spec:
#  components:
#    ingressGateways:
#    - enabled: true
#      name: istio-ingressgateway
#    - enabled: true
#      k8s:
#        resources:
#          requests:
#            cpu: 200m
#        service:
#          ports:
#          - name: tcp-citadel-grpc-tls
#            port: 8060
#            targetPort: 8060
#          - name: tcp-dns
#            port: 5353
#        serviceAnnotations:
#          cloud.google.com/load-balancer-type: internal
#      name: ilb-gateway
#      namespace: user-ingressgateway-ns
#    - enabled: true
#      k8s:
#        resources:
#          requests:
#            cpu: 200m
#        service:
#          ports:
#          - name: tcp-citadel-grpc-tls
#            port: 8060
#            targetPort: 8060
#          - name: tcp-dns
#            port: 5353
#        serviceAnnotations:
#          cloud.google.com/load-balancer-type: internal
#      name: other-gateway
#      namespace: istio-system

There is no CPU or memory limit for istiod, just the cpu and memory request.
So the overlay file can be any variation of the values in here https://istio.io/latest/docs/reference/config/istio.operator.v1alpha1/#IstioOperatorSpec. The overlay file we included is just an example of one potential configuration of the overlay file, but essentially as long as you have kind: IstioOperator and you have put valid yaml options, it can be used as an overlay. So in the example we provided, it is the

#      k8s:
#        resources:
#          requests:
#            cpu: 200m

section that allows you to change k8s resources (not all are available for changing but most are. Let me know if that didn't answer your question.


squid-prometheus quickstart

Summary
This PR includes a new quick-start for squid-prometheus integration.

Pre merge checklist

[x] Did you check you NRQL syntax? - Does it work?
[x] Did you include a Data source and Documentation reference?
[x] Are all documentation links publicly accessible?
[x] Did you check your descriptive content for voice and tone?
[x] Did you check your descriptive content for spelling and grammar errors?
[x] Did you review your content with a subject matter expert? (e.g. a Browser agent quickstart is reviewed with a member of the Browser Agent team)

Dashboards

[x] Does the PR contain a screenshot for each of your dashboards?
[x] Do your screenshots show data?
[x] Has the sanitization script been run on each dashboard?

Alerts
(no alerts included)

[x] Did you check that your alerts actually work?

 Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you all sign our Contributor License Agreement before we can accept your contribution.1 out of 2 committers have signed the CLA.:white_check_mark: sigilioso:x: alvarocabanasYou have signed the CLA already but the status is still pending? Let us recheck it.


automl: add samples for language and vision

Adding samples for AutoML:

Language entity extraction
Language sentiment analysis
Language text classification
Translate
Vision classification
Vision object detection

Tests will be coming soon in a follow up PR

Reorganized file names and fixed some wrong input variable names


Shoulld httpotion work with http streams?

Wondering if httpotion works with http streams? Thank you!

@sabondano Yeah, asynchronous requests should work with streaming.


Should I solve a puzzle to see direct download link of your plugin?

Please provide direct link to the ready-to-use js file (uncompressed and compressed)

https://github.com/hustcc/timeago.js/blob/master/gh-pages/timeago.min.js

CDN<EMAIL_ADDRESS>

Lib and dist file all in npm package.


Add firestore conformance tests

cc @schmidt-sebastian
To run conformance tests:
$ vendor/bin/phpunit -c phpunit-conformance.xml.dist

output:
➜ vendor/bin/phpunit -c phpunit-conformance.xml.dist
PHPUnit 5.7.25 by Sebastian Bergmann and contributors.

........SS...........SS......SSSS.SSS...............SS.......S... 65 / 90 ( 72%)
...........SS............                                         90 / 90 (100%)

Time: 7.49 seconds, Memory: 16.00MB

OK, but incomplete, skipped, or risky tests!
Tests: 90, Assertions: 74, Skipped: 16.

failing build is due to an issue with Travis and HHVM. Not due to a problem in the changeset.


Add support for YASnippet templates

This PR adds support for YASnippet files, a templating system for Emacs heavily inspired by TextMate's snippets feature.
Description
The YASnippet system doesn't mandate any particular naming convention for snippet files. Nonetheless, .yasnippet sees widespread use with ~246,160 files currently indexed by GitHub. .yas is less common, but reasonably well-distributed (365 results, 40 unique repos, 38 users).
The snippet alias is to enable matching of Emacs modelines: the yasnippet package recognises -*- snippet -*- as meaning a YASnippet file (example).
The samples I've added are my own; they're taken from my Atom setup (Atom's snippets feature, which is also inspired by TextMate, is mostly compatible with YASnippet's).
Syntax highlighting is provided by the language-emacs-lisp package, which I recently updated to include YASnippet highlighting.
(Template removed because each point was already covered by the above, which was drafted offline in Emacs)

@Alhadis Could you update your branch to fix the Travis CI tests?

Whoops, sorry. Merged from master and pushed. 👍


Return type phpdoc fix

@jiromm Please change also the PHPDoc in ReaderInterface and all of its implementations.

Done https://github.com/zendframework/zend-config/pull/30


Page doesn't load from mobile phone

Subject: Page doesn't load from mobile phone
Description:
Hey guys I just tried to load the main page or log in.
Results:
page doesn't load from mobile phone browser, I'm from android. Thx if u fix it.
Have nice day!
Backend version: develop-9e529dc6
Frontend version: develop-9e529dc6
User Agent: Mozilla/5.0 (Linux; Android 7.1.2; Redmi 4A) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/72.0.3626.121 Mobile Safari/537.36
Page: https://couchers.org/messages
User: agnes (12580)

not enough info or can't reproduce


Support the latest pkg:analyzer

What version is landed internally?

What version is landed internally?

Even newer than this...


Blog : Beginner's Guide to Node-RED Variables

Description

PR is Not Ready for review
Related Issue(s)
closes #1964
closes https://github.com/FlowFuse/customer/issues/194
Checklist

[ ] I have read the contribution guidelines
[ ] I have considered the performance impact of these changes
[ ] Suitable unit/system level tests have been added and they pass
[ ] Documentation has been updated

@Yndira-E @gdziuba @Hasmin-AC I start to believe we need to put this under /node-red/*. So this would be flowfuse.com/node-red/variables. We can move other blogs there too, to have one hub for all resources on how to leverage Node-RED with FlowFuse.

This does read more like documentation or tutorial to me.

@Hasmin-AC I will update the post based on your suggestions and will let you know when it is done.

Hey @ZJvandeWeg, are you suggesting something like https://flowfuse.com/blog/node-red/? We could create a new filtered page and designate a specific tag for FlowFuse and Node-RED content (I'm not sure what the name should be though).
Or were you thinking of listing them under the /node-red/ page in the 'Learn Node-RED' section? Just trying to grasp why you're proposing to remove them from the blog list.

@Yndira-E I think more like flowfuse.com/node-red/variables. And make flowfuse.com/node-red/* the place for all Node-RED learning (concepts, installation, shortcuts, etc etc). Blogs remain under /blog

@ZJvandeWeg are we moving it to where you suggested here? Should I do that and link it as a key concept in the /node-red page?

Or are we waiting until this iteration is done and including this content as part of it?

@Yndira-E First publish the blog post, if we need to move it we can introduce a redirect and it's easy to achieve. Adding it to the pillar page, and maybe v1.1 of the ebook (@Hasmin-AC ) are good suggestions, we can pursue right after.

Lets make sure the url is updated before publishing too please.

@sumitshinde-84 @ZJvandeWeg @Hasmin-AC What's stopping us from merging this?

Apart from updating the URL to match the title, the blog is good to publish from me.

I have now updated the URL to match the blog title! Previously, I mistakenly updated the URL to the PR name. :sweat_smile:

Nearly done @sumitshinde-84, I think we can target merging today!


feat: bump opentelemetry dependencies

The stable version of the metric API has been released,
see https://github.com/open-telemetry/opentelemetry-go/releases/tag/v1.16.0

Looks like this PR needs to be merged as well

Dependencies got updated in this PR


[R] Return plan generated when calling write_dataset

Describe the enhancement requested
Return the generated ExecPlan; this will make it easier to debug
Component(s)
R

Closing this as we didn't need it to debug the problem which prompted this, I don't think we need this otherwise, and I don't have time time to work on it.  Happy to revisit if it turns out to be useful in other cases though.


fix seek android

Thanks for opening a PR!
Since this is a volunteer project and is very active, anything you can do to reduce the amount of time needed to review and merge your PR is appreciated.
The following steps will help get your PR merged quickly:
Update the documentation
If you've added new functionality, update the README.md with an entry for your prop or event.
The entry should be inserted in alphabetical order.
Update the changelog
After you open the PR, update the CHANGELOG.md file with an entry pointing to your PR.
Provide an example of how to test the change
If the PR requires special testing setup provide all the relevant instructions and files. This may include a sample video file or URL, configuration, or setup steps.
Focus the PR on only one area
Testing multiple features takes longer than isolated changes and if there is a bug in one feature, prevents the other parts of your PR from getting merged until it gets fixed.
If you're touching multiple different areas that aren't related, break the changes up into multiple PRs.
Describe the changes
Add a note describing what your PR does. If there is a change to the behavior of the code, explain why it needs to be updated.

@benoitdion Dude, can you merge this?

duplicate: https://github.com/react-native-video/react-native-video/pull/2511/files
and : https://github.com/react-native-video/react-native-video/pull/2555/files

duplicate: https://github.com/react-native-video/react-native-video/pull/2511/files
and : https://github.com/react-native-video/react-native-video/pull/2555/files


Add form validation using Yup for creating posts

#39  I implemented form validation using the Yup library for the Create post form submission. The form now includes validation rules for the input fields to ensure the entered data meets the required criteria.
issue Solved :  #39
Integrated Yup library for form validation
Created a validation schema using Yup to define rules for each input field
Added error messages to display validation errors for each field
Configured form submission to only proceed if all validation rules are met
Updated the form component to utilize the Yup validation schema
Before

After :

@AKD-01

please resolve the conflicts and tag me

@AKD-01
resolved merge conflicts

@Mudassirkhan2 image preview is not working, please rectify it

can i know what you you are trying to say @AKD-01  ?

This image preview ain't working and also please resolve all the conflicts first.

Closing this issue as no response from your end. And now, there is create post form validation on the blogweet.


DOC-5237 add 4 mvcc range metrics

Addresses: DOC-5237

Added 4 new metrics to metric-names.md: rangekeybytes, rangekeycount, rangevalbytes, and rangevalcount.

Question:

Assuming these are not for Serverless also, or I'd need to also update metric-names-serverless.md.

Staging:
metric-names.md

This change is

Assuming these are not for Serverless also, or I'd need to also update metric-names-serverless.md.

These should be exposed in serverless too. They are analogous to the point key metrics, e.g. keybytes, which are already exposed in serverless.

@erikgrinaker Sorry I misspoke: To be avail in Serverless, these metrics would need to also be present in this file, IIRC: https://github.com/cockroachlabs/managed-service/blob/master/pkg/otel/assets/metrics.yaml. I believe this would require a ticket to the KV Obs team. The metric-names-serverless.md file I referenced is populated directly from this yaml file.

I see, thanks @andf-crl. I wrote up https://cockroachlabs.atlassian.net/browse/CC-8391 for this, hope I put it in the right place.
Sorry for the late reply btw, been sick for a while.

No worries, and TYFR! Hope you're feeling better!

TYFR both!


Error on blinky example [MacOS]

Hi,
I've tried to build the simple blinky example on an Intel Mac, i get the following error message
error: failed to run custom build command for `rp-pico v0.1.2 (/Users/mike/rp-microcontroller-rs/boards/rp-pico)`

Caused by:
  process didn't exit successfully: `/Users/mike/rp-microcontroller-rs/boards/rp-pico/target/release/build/rp-pico-e40bae595826af2c/build-script-build` (exit code: 1)
  --- stdout
  cargo:rustc-link-search=/Users/mike/rp-microcontroller-rs/boards/rp-pico/target/thumbv6m-none-eabi/release/build/rp-pico-ab0cb9379176bdff/out
  TARGET = Some("thumbv6m-none-eabi")
  OPT_LEVEL = Some("3")
  HOST = Some("x86_64-apple-darwin")
  CC_thumbv6m-none-eabi = None
  CC_thumbv6m_none_eabi = None
  TARGET_CC = None
  CC = None
  CROSS_COMPILE = None
  CFLAGS_thumbv6m-none-eabi = None
  CFLAGS_thumbv6m_none_eabi = None
  TARGET_CFLAGS = None
  CFLAGS = None
  CRATE_CC_NO_DEFAULTS = None
  DEBUG = Some("false")
  CARGO_CFG_TARGET_FEATURE = None
  running: "arm-none-eabi-gcc" "-O3" "-ffunction-sections" "-fdata-sections" "-mthumb" "-march=armv6s-m" "-Wall" "-Wextra" "-o" "/Users/mike/rp-microcontroller-rs/boards/rp-pico/target/thumbv6m-none-eabi/release/build/rp-pico-ab0cb9379176bdff/out/src/bs2_default_padded_checksummed.o" "-c" "src/bs2_default_padded_checksummed.S"

  --- stderr

  error occurred: Failed to find tool. Is `arm-none-eabi-gcc` installed?

warning: build failed, waiting for other jobs to finish...
error: build failed

I also initially encountered missing "thumbv6m-none-eabi" - i solved this by doing
rustup target add thumbv6m-none-eabi
It may be worth adding this step to the readme

Hi!
That's because of the build-dependency on the cc crate. You probably want to install it when developing for the Rasperry Pi Pico.
However, I don't know how to do it on MacOS. On Linux (Debian or Ubuntu) you could install it with apt-get install gcc-arm-none-eabi.
For now, I changed the crate to directly include a pre-compiled binary bootloader. So it should work without gcc.
When you develop for an arm micro-controller, I guess sooner or later you'll encounter another crate needing it. So it's probably still a good idea to find out how to install it on MacOS.


Sync is broken when no internet is available

Does this issue occur when all extensions are disabled?: Yes

VS Code Version: Every version since Sync landed in production builds
OS Version: Windows 8.1 Pro Latest

Steps to Reproduce:

Login
Change some settings
Turn on sync
Close the editor
Set an internet speed limit to 1 KB/s for instance (has to be too low)
Launch VSCode again
Watch as the extension fails to sync and reset local settings

My settings were reset for no reason a few minutes ago and all my settings are gone. None. No more. Themes, shortcuts, snippets, environment setup, etc. This is really frustrating, and is not the first time it happened. I'm seriously considering turning off sync for good.

And when viewing the Sync Activity (Local) tab there's nothing there. Only default VSCode settings.

Watch as the extension fails to sync and reset local settings

Can you please Enable log level to trace, repeat above steps and provide the settings sync log by running the command F1 > Open View > Log (Settings Sync)


(beta) Survey Form example doesn't pass all tests

Describe your problem and - if possible - how to reproduce it

this is not a problem for the curriculum code but on the codepen example
one test is not passing. see screenshot below

Add a Link to the page with the problem
https://codepen.io/freeCodeCamp/full/VPaoNP
Tell us about your browser and operating system

Browser Name: Safari

If possible, add a screenshot here

Hi, I think that this issue deals with your problem:
https://github.com/freeCodeCamp/freeCodeCamp/issues/17506

All tests are passing now, please close this issue @dcookwebdev / @scissorsneedfoodtoo

@dcookwebdev, thanks for reporting this. I just checked it out and it seems like your survey form is passing all the tests in Chrome:

I think the problem might have been that the test suite only runs in Chrome at the moment, at least according to the template here: https://codepen.io/freeCodeCamp/pen/MJjpwO
I'll close this for now, but please go ahead and run the test suite again in Chrome and report back if you still have problems passing all the tests.
Also, thanks @esotheriax and @thecodingaviator for helping out with this issue!


build failed: unresolved references

hi federico,
unfortunately the build fails for me, supposedly due to missing dependencies/private libraries.
...
:assemble UP-TO-DATE
:kanvas-core:compileKotlin
e: /opt/volumes/swentw/kanvas/kanvas-core/src/main/kotlin/LanguageSupport.kt: (3, 22): Unresolved reference: antlr
e: /opt/volumes/swentw/kanvas/kanvas-core/src/main/kotlin/LanguageSupport.kt: (63, 56): Unresolved reference: None
:kanvas-core:compileKotlin FAILED

Hi Marco, I am sorry to hear that and thankful for your report. I should start by setting up Travis ASAP (#2).
Have you tried running ./gradlew generateGrammarSource ?

hi federico,
no worries. I had not tried the ./gradlew generateGrammarSource.
I did now and it seems to proceed further than before. now it fails at a different point in the build (doing gradlew build:
:kanvas-sandy:classes
:kanvas-sandy:jar
:kanvas-sandy:assemble
:kanvas-sandy:compileTestKotlin
Download https://repo1.maven.org/maven2/org/jetbrains/kotlin/kotlin-test/1.0.6/kotlin-test-1.0.6.pom
Download https://repo1.maven.org/maven2/org/jetbrains/kotlin/kotlin-test-parent/1.0.6/kotlin-test-parent-1.0.6.pom
Download https://repo1.maven.org/maven2/org/jetbrains/kotlin/kotlin-test-junit/1.0.6/kotlin-test-junit-1.0.6.pom
Download https://repo1.maven.org/maven2/org/jetbrains/kotlin/kotlin-test/1.0.6/kotlin-test-1.0.6.jar
Download https://repo1.maven.org/maven2/org/jetbrains/kotlin/kotlin-test-junit/1.0.6/kotlin-test-junit-1.0.6.jar
e: /opt/volumes/swentw/kanvas/kanvas-sandy/src/test/kotlin/CompletionTest.kt: (15, 9): Type inference failed. The value of the type parameter T should be mentioned in input types (argument types, receiver type or expected type). Try to specify it explicitly.
e: /opt/volumes/swentw/kanvas/kanvas-sandy/src/test/kotlin/CompletionTest.kt: (21, 9): Type inference failed. The value of the type parameter T should be mentioned in input types (argument types, receiver type or expected type). Try to specify it explicitly.
e: /opt/volumes/swentw/kanvas/kanvas-sandy/src/test/kotlin/CompletionTest.kt: (27, 9): Type inference failed. The value of the type parameter T should be mentioned in input types (argument types, receiver type or expected type). Try to specify it explicitly.
e: /opt/volumes/swentw/kanvas/kanvas-sandy/src/test/kotlin/CompletionTest.kt: (34, 9): Type inference failed. The value of the type parameter T should be mentioned in input types (argument types, receiver type or expected type). Try to specify it explicitly.
e: /opt/volumes/swentw/kanvas/kanvas-sandy/src/test/kotlin/CompletionTest.kt: (41, 9): Type inference failed. The value of the type parameter T should be mentioned in input types (argument types, receiver type or expected type). Try to specify it explicitly.
:kanvas-sandy:compileTestKotlin FAILED

hi @mrolappe I forgot to refactor some tests. They should work now and hopefully Travis will help catch such errors in the future


Other than Latin characters in text

Would it be possible to show other than Latin languages in the text?
Currently, we are limited to the Codepoints but if Japanese, Chinese, Indian, etc. users wanted to use PictureFrame they could not customize it to their language.

Wolfgang, I think it will work fine with any set of unicode character in the config file codepoints string. That variable is put in the config file precisely so users in different countries can change it to suit their needs.
The limitations are that all the characters are rendered onto a 1024x1024 texture so if you had 10,000 characters in codepoints each would only have 10x10 pixels which might get a bit grainy - probably still readable though. Also there might be a tiny additional delay when the display text is built, as each character in the displayed text is checked to ensure it's in codepoints.
These 1500 characters cover over 95% of Chinese text and would result in resolution 26x26 pixels i.e. each character would be like this

Ah, I didn't know that. Thanks for the clarification, Paddy!

It works. I have some images from Abu Dhabi. Nice Arabic description beside the English text.

I can always see in Home Assistant what text is missing on the frame. But we just have too many characters in the world to add them all..

If we had used the pi3d.FixedString then all the characters in the font would have been available. If this becomes an issue in future we could switch over.

Interesting option! What would change using the pi3d.FixedString?

At the moment I don't think it does line wrapping automatically. It uses the PIL ImageDraw so I think it would be possible to add in the line length in pixels system, but at the moment it doesn't do that - you have to insert the line breaks manually.

branch d808059fa58f1b6b9f22a1a92704d47c3f4c31a6 using pi3d.FixedString It needs the pi3d develop branch which has additional functionality to set the width of the text.
This method will repeatedly create pi3d.Texture objects, which should have the memory released by the adapted garbage collector system in pi3d but probably worth monitoring this. Also I've only tried this on the relatively small screen of this laptop so I don't know if that's an issue.
Paddy
PS I've not taken out the code that checks character in codepoints but that isn't needed any longer. Will fix that later.

This has been running for a while now without issue (though I think the char size might be slightly larger?). Also I realized that the whole picframe system relies on creating and destroying Texture instances so that obviously isn't a concern.

Just out of curiosity: Will this make it into the next release? :-)

I would think so. It's been running here for a few days without any problems.

Are people happy for me to merge these two branches into dev?

I haven't had a chance to look at / try any of the above, but it seems like a reasonable add to the dev branch to me. We should probably make it a point to explicitly kick the tires a little harder / longer before merging it into production though...

Having done "vanilla" pip installs for the released version on the Pi3 and Pi4 (because that's the most important thing to not go wrong) it's a bit messy to switch in other branches. I've been doing it by just copying over the site-packages/picframe files but you have to fix a couple of lines in configuration.yaml and, for this change, you have to python3 -m pip install --upgrade pi3d
OK I'll merge them, let me know if you spot anything.

Paddy, I will test it. But to do a clean install from source. Just checkout the branch. Than do python3 pip install /path/to/picfraem/sources --upgrade. This will do a clean install. Just from the sources and not from pypi.

And installing from the sources has the advantage, that pi3d should be automatically updated to meet the requirements.

Ah yes that's neat. I've merged the two branches into dev now.

hm, when I search for location athen and tags playmobil this works. Also istanbul and playmobil.  I get only image with tag playmobil in the searched city. But  athen and istanbul with tags playmobil seems not to work. Looks like tag search is ignored.

Helge, thanks for testing this.
I thought at first I must have copied something and left a "tags" in where it should have been "location" or something, but it looks OK as far as I can tell.
Just to get this straight:
location = "athen", tags = "playmobil" => works as expected
location = "istanbul", tags = "playmobil" => works as expected
location = "athen and istanbul", tags = "playmobil" => wrong results.

I would expect zero hits for that last query as it would require a location containing "athen" and "istanbul" i.e. the no images selected page. Are you getting all the images instead of none? I think there might be a need for some brackets around all the tags clauses and all the location clauses because of my point below
To get images from both "athen" and "istanbul" I would use
location = "athen or istanbul", tags = "playmobil"

did you try that? The problem might be that the resultant SQL would be
fname LIKE '/home/pi/Pictures%' AND location LIKE '%athen%' OR location LIKE '%istanbul%' AND tags LIKE '%playmobil%'
which is wrong. It needs to be
fname LIKE '/home/pi/Pictures%' AND (location LIKE '%athen%' OR location LIKE '%istanbul%') AND (tags LIKE '%playmobil%')
I will fix that ASAP but will wait for you to clarify what results you get first.
Paddy

Sorry, might be a bit late yesterday
location = "athen" => 12 images
location = "istanbul" => 10 images
location = "athen and istanbul" => 0 images (as expected)
location = "athen or istanbul" => 22 images (as expected)
location = "athen or istanbul" and tags = "playmobil" => 13 images (12 of athen and 1 of istanbul with tag = 'playmobil')
loacation = "istanbul or athen"  and tags = "playmobil" => 11 images (10 of istanbul and 1 of athen with tag = 'playmobil')

So I think it is indeed the missing brackets. AND seems to bind stronger than OR

Helge, yes the more I looked at it the more I could see random results. With dates and subfolders in there as well it would have been quite easy to get very muddled results i.e. where the date only filtered the pictures taken in instanbul
Boolean algebra has a precedence defined as with normal algegbra. Just checking for sqlite makes me think that the evaluation of the NOT clauses might go awry too. As it stands setting location to not germany or berlin will convert to
NOT location LIKE '%germany%' OR location LIKE '%berlin%'
The precedence list I found implies that it will be evaluated NOT before LIKE before AND before OR:
((NOT location) LIKE '%germany%') OR (location LIKE '%berlin%')
However that would be very counter-intuitive syntax and, after doing a bit of testing with sqlitebrowser, it certainly seems that it produces the expected interpretation
(NOT (location LIKE '%germany%')) OR (location LIKE '%berlin%')
Maybe the parser spots the pattern NOT colname LIKE.. and converts it to colname NOT LIKE.. which is a special operator that inverts the selection process i.e. `NOT(colname LIKE..)

I'll give it a try

I think this can be closed, right?

It does now show more characters but oftentimes with non-Latin languages, the characters are still not shown. In Home Assistant, all the characters are shown but not in PictureFrame. But I guess, it's too hard to change that so we might as well close this issue.

I believe that the issue has been moved outside pi3d and picframe. i.e. if the font that is referenced from configuration.yaml has the character in it then it should show on the screen.
@sapnho is this not the case?

I probably misunderstand how this is supposed to work. If I have an image with Japanese GPS data, the Japanese characters are shown correctly in Home Assistant but not on the info display in Pi3D. So my hope was since I don't have to specify a particular font in Home Assistant, it might work the same in Pi3D. Is there any way to make this happen? Thanks!

@sapnho You can play around with google fonts and try to find one that meets the requirements. https://fonts.google.com/specimen/Open+Sans?subset=japanese&preview.text=彼らの機器や装置はすべて生命体だ%E3%80%82dfasdfas&preview.text_type=custom#standard-styles
Not all fonts support all characters. But I don't now how Home Assistant is dealing with that.

Indeed that is a possibility but unfortunately incomplete. I wonder how this is handled in non-Latin character languages in general.

Try to install google noto fonts.

Beautiful and free fonts for all languages

When text is rendered by a computer, sometimes characters are displayed as “tofu”. They are little boxes to indicate your device doesn’t have a font to display the text.

Google has been developing a font family called Noto, which aims to support all languages with a harmonious look and feel. Noto is Google’s answer to tofu. The name noto is to convey the idea that Google’s goal is to see “no more tofu”. Noto has multiple styles and weights, and is freely available to all. The comprehensive set of fonts and tools used in our development is available in our GitHub repositories.

That sounds intruiging!

https://www.google.com/get/noto/#sans-lgc

I switched to noto in pi3d_demos as soon as they were announced (can't believe it's five years ago!). And these are the font files brought across into picframe... but I haven't updated the files since I first added them so maybe there were some missing characters that have now been filled in. I will check out the latest download.

Hmm, just downloaded the zip and NotoSans-Regular.ttf was last updated in 2017. However it now looks to be 455.2kB and the version in picframe is 399kB so there might be some missing character there. I will update and push to dev branch.

582 languages, but no Japanese in NotoSans.

@paddywwoof Outstanding! Why they left out the few kana characters in Japanese is a miracle to me as the rest should look like the Chinese Kanji ones, shouldn't they?

Maybe the chinese characters in NotoSans-Regular is very incomplete. And you should really use https://www.google.com/get/noto/help/cjk/
Not sure what the most efficient way to get all characters without having to change fonts mid-way through the text. Probably basic ASCII will included at the beginning of all fonts. Obviously it would be possible to test for the existence of a character and look through different fonts but that's beyond the scope of the picframe specification!

Related... I have the following string in a location table record:
Wuzhen West Scenic Zone, 桃源镇, Wujiang District, China
When shown on the frame, those 3 Chinese chars show up as hollow boxes - even with the latest Noto font updates...

When I copy paste your text into libreoffice and set the font to NotoSans I see that those three characters actually get Noto Sans Mono CJ applied to them. The WP seems to have an algorithm in to check what installed fonts have the appropriate unicode glyphs in. I don't think we will be trying to do anything like that in picframe, however all the standard European as well as katagana, kiragan and anything else I could think of seem to be included in that font...
So maybe we should bundle Noto Sans Mono CJ with picframe and set the default to that

It looks like Noto Sans Mono CJK comes in 4 default language variations (times 2 serif variations). The site states the following:
Each font sets one language as the default. Note that each language-specific font does support all four languages and includes the complete set of glyphs. However, you need an application program that can invoke an OpenType locl GSUB feature (e.g. Adobe InDesign) to access language-specific variants other than the default language.
I assume nothing in the picframe dependency chain supports the mentioned OpenType locl GSUB feature (?). Which one would you install by default?

I just installed the NotoSansCJKsc-Regular font and have verified that it does indeed display Chinese characters in the string mentioned above correctly. Nice.

I just installed the NotoSansCJKsc-Regular font (the simplified Chinese variation) and have verified that it does indeed display Chinese characters in the string mentioned above correctly. Nice.

That is great news!

I know that this thread has rested in peace for three years but just like with unsolved murder cases, there are new insights every now and then that merit a revisit...
I just had a photo from Myanmar on my frame and the geodata was shown correctly in Home Assistant but only boxes appeared on PictureFrame.
If it is doable on Home Assistant, can't it be done on PicFrame? Hope never dies..